summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/special/class.ctor/p5-0x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CXX/special/class.ctor/p5-0x.cpp')
-rw-r--r--clang/test/CXX/special/class.ctor/p5-0x.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CXX/special/class.ctor/p5-0x.cpp b/clang/test/CXX/special/class.ctor/p5-0x.cpp
index ab8fdb0f1bd..0f4add8c974 100644
--- a/clang/test/CXX/special/class.ctor/p5-0x.cpp
+++ b/clang/test/CXX/special/class.ctor/p5-0x.cpp
@@ -195,3 +195,15 @@ static_assert(__has_trivial_constructor(Trivial4<int>), "Trivial4 is trivial");
template<typename T> class Trivial5 { Trivial5() = delete; };
static_assert(__has_trivial_constructor(Trivial5<int>), "Trivial5 is trivial");
+
+namespace PR14558 {
+ // Ensure we determine whether an explicitly-defaulted or deleted special
+ // member is trivial before we return to parsing the containing class.
+ struct A {
+ struct B { B() = default; } b;
+ struct C { C() = delete; } c;
+ };
+
+ static_assert(__has_trivial_constructor(A), "");
+ static_assert(__has_trivial_constructor(A::B), "");
+}
OpenPOWER on IntegriCloud