OSDN Git Service

* c-common.c (c_common_reswords): Add _Static_assert for C.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / c1x-static-assert-2.c
1 /* Test C1X static assertions.  Failed assertions.  */
2 /* { dg-do compile } */
3 /* { dg-options "-std=c1x -pedantic-errors" } */
4
5 _Static_assert (0, "assert1"); /* { dg-error "static assertion failed: \"assert1\"" } */
6
7 enum e { E0, E1 };
8
9 _Static_assert (E0, L"assert2"); /* { dg-error "static assertion failed: \"assert2\"" } */
10
11 _Static_assert (-0, "ass" L"ert3"); /* { dg-error "static assertion failed: \"assert3\"" } */
12
13 struct s
14 {
15   int a;
16   _Static_assert (0, "assert4"); /* { dg-error "static assertion failed: \"assert4\"" } */
17   int b;
18 };
19
20 union u
21 {
22   int i;
23   _Static_assert ((int)0.0, L"assert5"); /* { dg-error "static assertion failed: \"assert5\"" } */
24 };
25
26 void
27 f (void)
28 {
29   int i;
30   i = 1;
31   _Static_assert (0 + 0, "assert6"); /* { dg-error "static assertion failed: \"assert6\"" } */
32   i = 2;
33 }
34
35 void
36 g (void)
37 {
38   int i = 0;
39   for (_Static_assert (0, "assert7"); i < 10; i++) /* { dg-error "static assertion failed: \"assert7\"" } */
40     ;
41 }