llvm-project/clang/test/CXX
Richard Smith df054d3d22 C++ DR1611, 1658, 2180: implement "potentially constructed subobject" rules for special member functions.
Essentially, as a base class constructor does not construct virtual bases, such
a constructor for an abstract class does not need the corresponding base class
construction to be valid, and likewise for destructors.

This creates an awkward situation: clang will sometimes generate references to
the complete object and deleting destructors for an abstract class (it puts
them in the construction vtable for a derived class). But we can't generate a
"correct" version of these because we can't generate references to base class
constructors any more (if they're template specializations, say, we might not
have instantiated them and can't assume any other TU will emit a copy).
Fortunately, we don't need to, since no correct program can ever invoke them,
so instead emit symbols that just trap.

We should stop emitting references to these symbols, but still need to emit
definitions for compatibility.

llvm-svn: 296275
2017-02-25 23:53:05 +00:00
..
basic Fix hole in our enforcement of rule requiring 'typename' prior to a dependent 2017-02-01 21:36:38 +00:00
class Fix all tests under test/CXX (and test/Analysis) to pass if clang's default 2016-08-31 23:24:08 +00:00
class.access Fix all tests under test/CXX (and test/Analysis) to pass if clang's default 2016-08-31 23:24:08 +00:00
class.derived Add context note to diagnostics that occur while declaring an implicit special member function. 2017-02-23 21:43:43 +00:00
concepts-ts [Concepts] Class template associated constraints 2017-02-10 02:46:19 +00:00
conv [c++1z] P0003R5: Removing dynamic exception specifications. 2016-12-08 02:49:07 +00:00
cpp/cpp.predefined P0035R4: add predefined __STDCPP_DEFAULT_NEW_ALIGNMENT__ macro. By default, we 2016-09-30 22:41:36 +00:00
dcl.dcl [c++1z] Diagnose attempts to use variables with deduced class template 2017-02-10 22:35:37 +00:00
dcl.decl [Sema] Add lvalue-to-rvalue cast in direct-list-initialization of enum 2017-02-16 01:20:00 +00:00
drs C++ DR1611, 1658, 2180: implement "potentially constructed subobject" rules for special member functions. 2017-02-25 23:53:05 +00:00
except P0012R1: Make exception specifications be part of the type system. This 2016-10-16 17:54:23 +00:00
expr [c++1z] Synthesize implicit deduction guides from constructors on demand. Rank 2017-02-14 00:25:28 +00:00
lex Convert test/CXX/lex/lex.literal/lex.string/p4.cpp back to DOS line 2016-01-04 10:17:48 +00:00
over [c++1z] Add some more tests for class template argument deduction, add 2017-02-14 00:55:25 +00:00
special [Sema] Improve the error diagnostic for dot destructor calls on pointer objects 2017-01-20 15:38:58 +00:00
stmt.stmt Try contextually converting condition of constexpr if to Boolean value 2016-09-07 18:24:54 +00:00
temp [c++1z] Add some more tests for class template argument deduction, add 2017-02-14 00:55:25 +00:00