diff options
Diffstat (limited to 'test/Sema/attr-decl-after-definition.c')
-rw-r--r-- | test/Sema/attr-decl-after-definition.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/test/Sema/attr-decl-after-definition.c b/test/Sema/attr-decl-after-definition.c index 4d32e00..17b94cc 100644 --- a/test/Sema/attr-decl-after-definition.c +++ b/test/Sema/attr-decl-after-definition.c @@ -14,6 +14,26 @@ int bar __attribute__((weak)); int bar __attribute__((used)); extern int bar __attribute__((weak)); int bar = 0; // expected-note {{previous definition is here}} -int bar __attribute__((weak)); // expected-warning {{must precede definition}} +int bar __attribute__((weak)); // no warning as it matches the existing + // attribute. +int bar __attribute__((used, + visibility("hidden"))); // expected-warning {{must precede definition}} int bar; +struct zed { // expected-note {{previous definition is here}} +}; +struct __attribute__((visibility("hidden"))) zed; // expected-warning {{must precede definition}} + +struct __attribute__((visibility("hidden"))) zed2 { +}; +struct __attribute__((visibility("hidden"))) zed2; + +struct __attribute__((visibility("hidden"))) zed3 { // expected-note {{previous definition is here}} +}; +struct __attribute__((visibility("hidden"), + packed // expected-warning {{must precede definition}} + )) zed3; + +struct __attribute__((visibility("hidden"))) zed4 { // expected-note {{previous attribute is here}} +}; +struct __attribute__((visibility("default"))) zed4; // expected-error {{visibility does not match previous declaration}} |