]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/gnu2x-attrs-1.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / gnu2x-attrs-1.c
CommitLineData
4e03c3a7
JM
1/* Test C2x attribute syntax. Test GNU attributes appertain to
2 appropriate constructs. */
3/* { dg-do compile } */
9f6dd268 4/* { dg-require-alias "" } */
4e03c3a7
JM
5/* { dg-options "-std=gnu2x" } */
6
7void f (void) {};
8
ee407211 9[[gnu::alias("f")]] void g (void); /* { dg-error "only weak" "" { target *-*-darwin* } } */
4e03c3a7 10
1723e1be 11void [[gnu::alias("f")]] h (void); /* { dg-warning "does not apply to types" } */
4e03c3a7
JM
12
13struct [[gnu::packed]] s { int a; char b; };
14_Static_assert (sizeof (struct s) == (sizeof (int) + sizeof (char)));
15
16int
17f2 (void)
18{
19 [[gnu::deprecated]] int a = 1;
20 return a; /* { dg-warning "deprecated" } */
21}
22
23int
24f3 (void)
25{
26 int a [[gnu::deprecated]] = 1;
27 return a; /* { dg-warning "deprecated" } */
28}
29
30struct s2 { [[gnu::deprecated]] int a; int b [[gnu::deprecated]]; } x;
31
32int
33f4 (void)
34{
35 return x.a; /* { dg-warning "deprecated" } */
36}
37
38int
39f5 (void)
40{
41 return x.b; /* { dg-warning "deprecated" } */
42}
43
44enum e { E1 [[gnu::deprecated]] };
45
46enum e
47f6 (void)
48{
49 return E1; /* { dg-warning "deprecated" } */
50}
51
52int
53f7 ([[gnu::deprecated]] int y)
54{
55 return y; /* { dg-warning "deprecated" } */
56}
57
58union [[gnu::deprecated]] u { int x; };
59
60void
61f8 (void)
62{
63 union u var; /* { dg-warning "deprecated" } */
64}
65
66enum [[gnu::deprecated]] edep { E2 };
67
68void
69f9 (void)
70{
71 enum edep var; /* { dg-warning "deprecated" } */
72}