]> granicus.if.org Git - clang/commit
Implement DR257 / fix PR16659:
authorRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 22 Jul 2013 02:56:56 +0000 (02:56 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 22 Jul 2013 02:56:56 +0000 (02:56 +0000)
commitcbc820af7193e3ad9c71fbe6e3c8bd3c1166e540
tree1050f422d0bd67188a69ccb052df120f7d6f14f3
parent9fa667388fc44bc269a5e82909c8ac1c177a500d
Implement DR257 / fix PR16659:
  A constructor for an abstract class does not call constructors for virtual
  base classes, so it is not an error if no initializer is present for the
  virtual base and the virtual base cannot be default initialized.

Also provide a (disabled by default, for now) warning for the case where a
virtual base class's initializer is ignored in an abstract class's constructor,
and address a defect in DR257 where it was not carried through to C++11's rules
for implicit deletion of special member functions.

Based on a patch by Maurice Bos.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186803 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Diagnostic.h
include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/abstract.cpp