llvm-project/clang/test/CXX/drs
Richard Smith 7c2bcc9eb0 Fix clang's handling of the copy performed in the second phase of class
copy-initialization. We previously got this wrong in a couple of ways:
 - we only looked for copy / move constructors and constructor templates for
   this copy, and thus would fail to copy in cases where doing so should use
   some other constructor (but see core issue 670),
 - we mishandled the special case for disabling user-defined conversions that
   blocks infinite recursion through repeated application of a copy constructor
   (applying it in slightly too many cases) -- though as far as I can tell,
   this does not ever actually affect the result of overload resolution, and
 - we misapplied the special-case rules for constructors taking a parameter
   whose type is a (reference to) the same class type by incorrectly assuming
   that only happens for copy/move constructors (it also happens for
   constructors instantiated from templates and those inherited from base
   classes).

These changes should only affect strange corner cases (for instance, where the
copy constructor exists but has a non-const-qualified parameter type), so for
the most part it only causes us to produce more 'candidate' notes, but see the
test changes for other cases whose behavior is affected.

llvm-svn: 280776
2016-09-07 02:14:33 +00:00
..
dr0xx.cpp Fix clang's handling of the copy performed in the second phase of class 2016-09-07 02:14:33 +00:00
dr1xx.cpp Fix clang's handling of the copy performed in the second phase of class 2016-09-07 02:14:33 +00:00
dr2xx.cpp DR259: Demote the pedantic error for an explicit instantiation after an 2016-08-31 23:23:25 +00:00
dr3xx.cpp Update tests touched by r249656 2015-10-08 06:31:22 +00:00
dr4xx.cpp Fix implementation of C++'s restrictions on using-declarations referring to enumerators: 2016-05-05 02:13:49 +00:00
dr5xx.cpp Make SemaAccess smarter about determining when a dependent class might 2016-03-23 20:39:06 +00:00
dr6xx.cpp Push alias-declarations and alias-template declarations into scope even if 2016-07-15 20:53:25 +00:00
dr7xx.cpp Mark DR777 only as fixed in clang SVN. 2015-03-27 17:38:35 +00:00
dr9xx.cpp [Parse] Allow 'constexpr' in condition declarations 2015-06-25 22:06:40 +00:00
dr10xx.cpp DR1048: drop top-level cv-qualifiers when deducing the return type of a 2014-12-19 22:10:51 +00:00
dr12xx.cpp Mark DR1250 as implemented 2016-02-01 01:33:17 +00:00
dr13xx.cpp Add test for DR1359. 2016-06-13 19:04:44 +00:00
dr14xx.cpp DR1467: If aggregate initialization encounters an initializer list for which 2015-02-16 04:42:59 +00:00
dr15xx.cpp [Sema] Implement C++14's DR1579: Prefer returning by converting move constructor 2016-06-30 23:09:13 +00:00
dr16xx.cpp P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00
dr17xx.cpp P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00
dr18xx.cpp DR1684: a constexpr member function need not be a member of a literal class type. 2014-12-16 23:12:52 +00:00
dr19xx.cpp P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00
dr412.cpp C++14: Disable sized deallocation by default due to ABI breakage 2015-03-20 00:31:07 +00:00
dr1748.cpp Update cxx_dr_status to cover dr1748 and add test. 2015-02-14 03:38:31 +00:00