Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/c2x-attr-syntax-5.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Test C2x attribute syntax. Test unknown standard attributes | |
2 diagnosed with a pedwarn. */ | |
3 /* { dg-do compile } */ | |
4 /* { dg-options "-std=c2x -pedantic-errors" } */ | |
5 | |
6 [[unknown_attribute]]; /* { dg-error "attribute ignored" } */ | |
7 | |
8 [[unknown_attribute]] extern int a; /* { dg-error "attribute ignored" } */ | |
9 extern int [[unknown_attribute(123)]] a; /* { dg-error "attribute ignored" } */ | |
10 extern int a [[unknown_attribute("")]]; /* { dg-error "attribute ignored" } */ | |
11 | |
12 int f () [[unknown_attribute]]; /* { dg-error "attribute ignored" } */ | |
13 int f (void) [[unknown_attribute(1)]]; /* { dg-error "attribute ignored" } */ | |
14 int g ([[unknown_attribute]] int a); /* { dg-error "attribute ignored" } */ | |
15 int g (int [[unknown_attribute]] a); /* { dg-error "attribute ignored" } */ | |
16 int g (int a [[unknown_attribute]]); /* { dg-error "attribute ignored" } */ | |
17 int g ([[unknown_attribute]] int); /* { dg-error "attribute ignored" } */ | |
18 int g (int [[unknown_attribute]]); /* { dg-error "attribute ignored" } */ | |
19 int g (int) [[unknown_attribute]]; /* { dg-error "attribute ignored" } */ | |
20 | |
21 int *[[unknown_attribute]] p; /* { dg-error "attribute ignored" } */ | |
22 int b[3] [[unknown_attribute]]; /* { dg-error "attribute ignored" } */ | |
23 | |
24 int h (int () [[unknown_attribute]]); /* { dg-error "attribute ignored" } */ | |
25 | |
26 struct [[unknown_attribute]] s; /* { dg-error "attribute ignored" } */ | |
27 union [[unknown_attribute]] u; /* { dg-error "attribute ignored" } */ | |
28 | |
29 struct [[unknown_attribute]] s2 { int a; }; /* { dg-error "attribute ignored" } */ | |
30 union [[unknown_attribute(x)]] u2 { int a; }; /* { dg-error "attribute ignored" } */ | |
31 | |
32 struct s3 { [[unknown_attribute]] int a; }; /* { dg-error "attribute ignored" } */ | |
33 struct s4 { int [[unknown_attribute]] a; }; /* { dg-error "attribute ignored" } */ | |
34 union u3 { [[unknown_attribute]] int a; }; /* { dg-error "attribute ignored" } */ | |
35 union u4 { int [[unknown_attribute]] a; }; /* { dg-error "attribute ignored" } */ | |
36 | |
37 int z = sizeof (int [[unknown_attribute]]); /* { dg-error "attribute ignored" } */ | |
38 | |
39 enum [[unknown_attribute]] { E1 }; /* { dg-error "attribute ignored" } */ | |
40 enum { E2 [[unknown_attribute]] }; /* { dg-error "attribute ignored" } */ | |
41 enum { E3 [[unknown_attribute]] = 4 }; /* { dg-error "attribute ignored" } */ | |
42 | |
43 void | |
44 func (void) [[unknown_attribute]] { /* { dg-error "attribute ignored" } */ | |
45 [[unknown_attribute]] int var; /* { dg-error "attribute ignored" } */ | |
46 [[unknown_attribute]] { } /* { dg-error "attribute ignored" } */ | |
47 [[unknown_attribute(!)]]; /* { dg-error "attribute ignored" } */ | |
48 [[unknown_attribute]] var = 1; /* { dg-error "attribute ignored" } */ | |
49 [[unknown_attribute]] x: var = 2; /* { dg-error "attribute ignored" } */ | |
50 for ([[unknown_attribute]] int zz = 1; zz < 10; zz++) ; /* { dg-error "attribute ignored" } */ | |
51 } | |
52 | |
53 /* nodiscard is not yet implemented, but is a standard attribute, so | |
54 its use is not a constraint violation and should only receive a | |
55 warning. */ | |
56 [[nodiscard]] int ndfunc (void); /* { dg-warning "attribute directive ignored" } */ |