aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/ext/is_literal_type3.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/is_literal_type3.C')
-rw-r--r--gcc/testsuite/g++.dg/ext/is_literal_type3.C26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/is_literal_type3.C b/gcc/testsuite/g++.dg/ext/is_literal_type3.C
new file mode 100644
index 00000000000..22d8494a2b4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/is_literal_type3.C
@@ -0,0 +1,26 @@
+// { dg-do compile { target c++11 } }
+
+struct S {
+ constexpr S () : n{} { }
+ ~S () { n = 1; }
+ int n;
+};
+
+static_assert(!__is_literal_type(S), "");
+
+#ifdef __cpp_constexpr_dynamic_alloc
+struct T {
+ constexpr T () : n{} { }
+ constexpr ~T () { n = 1; }
+ int n;
+};
+
+static_assert(__is_literal_type(T), "");
+
+struct U : public T {
+ constexpr U () : u{} { }
+ int u;
+};
+
+static_assert(__is_literal_type(U), "");
+#endif