diff gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,42 @@
+// PR c++/54922
+// { dg-do compile { target c++11 } }
+// { dg-options "-pedantic" }
+
+#define SA(X) static_assert(X,#X)
+
+struct A
+{
+  union {
+    union {
+      union {
+	unsigned char i;
+	int j;
+      };
+    };
+  };
+
+  constexpr A() : i(42) {}
+};
+
+constexpr A a;
+SA((a.i == 42));
+
+struct B
+{
+  struct {
+    int h;
+    struct {
+      union {
+	unsigned char i;
+	int j;
+      };
+      int k;
+    };				// { dg-warning "anonymous struct" }
+  };				// { dg-warning "anonymous struct" }
+  int l;
+
+  constexpr B(): h(1), i(2), k(3), l(4) {}
+};
+
+constexpr B b;
+SA((b.h == 1 && b.i == 2 && b.k == 3 && b.l == 4));