[llvm-bugs] [Bug 30916] New: If a class has indirect private virtual base with non-trivial public destructor, a class cannot access virtual base's destructor.
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Nov 4 05:17:02 PDT 2016
https://llvm.org/bugs/show_bug.cgi?id=30916
Bug ID: 30916
Summary: If a class has indirect private virtual base with
non-trivial public destructor, a class cannot access
virtual base's destructor.
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: boostcpp at gmail.com
CC: dgregor at apple.com, llvm-bugs at lists.llvm.org
Classification: Unclassified
If a class has indirect private virtual base with non-trivial public
destructor, a class cannot access its virtual base's destructor.
Example code:
struct A
{
~A(){}
};
struct B: virtual private A
{
~B() {}
};
struct C: public B
{
~C() {}
};
Result:
prog.cc:11:8: error: inherited virtual base class 'A' has private destructor
struct C: public B
^
prog.cc:6:11: note: declared private here
struct B: virtual private A
GCC accept this code.
Clang until 3.3 accept this code.
Clang 3.4 and later reject this code.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161104/ecb9f365/attachment.html>
More information about the llvm-bugs
mailing list