PR c++/38611 - missing -Wattributes on a typedef with attribute aligned
authorMartin Sebor <msebor@redhat.com>
Wed, 11 May 2016 03:04:03 +0000 (03:04 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Wed, 11 May 2016 03:04:03 +0000 (21:04 -0600)
From-SVN: r236112

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/Wattributes.C [new file with mode: 0644]

index ee47bd8bdf74908f86c03957f23dc31db9ebd257..dc87b0c34d6e35a4265a0c3402e43732edc9c458 100644 (file)
@@ -1,3 +1,8 @@
+2016-05-10  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/38611
+       * g++.dg/Wattributes.C: New test.
+
 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
 
        * gcc.dg/tree-ssa/bit-assoc.c: New testcase.
diff --git a/gcc/testsuite/g++.dg/Wattributes.C b/gcc/testsuite/g++.dg/Wattributes.C
new file mode 100644 (file)
index 0000000..35fae03
--- /dev/null
@@ -0,0 +1,20 @@
+// PR c++/38611
+// { dg-do compile }
+
+struct A { unsigned char a [272]; };
+
+typedef struct __attribute__ ((aligned (128))) A B;   // { dg-warning "attributes ignored" }
+typedef struct __attribute__ ((__may_alias__)) A C;   // { dg-warning "attributes ignored" }
+
+#ifndef __cplusplus
+#  define alignof       _Alignof
+#  define static_assert _Static_assert
+#elif __cplusplus < 201103L
+#  define alignof __alignof__
+#  define static_assert(expr, ignore) typedef int Assert [(expr) ? 1 : -1]
+#endif
+
+#define SA(expr) static_assert ((expr), #expr)
+
+SA (alignof (struct A) == alignof (B));
+