1 // RUN: %clang_cc1 %s -verify -fsyntax-only
2
3 __attribute__((visibility("hidden"))) __attribute__((aligned)) struct A; // expected-warning{{attribute 'visibility' is ignored, place it after "struct" to apply attribute to type declaration}} \
4 // expected-warning{{attribute 'aligned' is ignored, place it after "struct" to apply attribute to type declaration}}
5 __attribute__((visibility("hidden"))) __attribute__((aligned)) union B; // expected-warning{{attribute 'visibility' is ignored, place it after "union" to apply attribute to type declaration}} \
6 // expected-warning{{attribute 'aligned' is ignored, place it after "union" to apply attribute to type declaration}}
7 __attribute__((visibility("hidden"))) __attribute__((aligned)) enum C {C}; // expected-warning{{attribute 'visibility' is ignored, place it after "enum" to apply attribute to type declaration}} \
8 // expected-warning{{attribute 'aligned' is ignored, place it after "enum" to apply attribute to type declaration}}
9
10 // Make sure that we produce the same warnings on block declarations.
func()11 void func() {
12 __attribute__((visibility("hidden"))) __attribute__((aligned)) struct A; // expected-warning{{attribute 'visibility' is ignored, place it after "struct" to apply attribute to type declaration}} \
13 // expected-warning{{attribute 'aligned' is ignored, place it after "struct" to apply attribute to type declaration}}
14 __attribute__((visibility("hidden"))) __attribute__((aligned)) union B; // expected-warning{{attribute 'visibility' is ignored, place it after "union" to apply attribute to type declaration}} \
15 // expected-warning{{attribute 'aligned' is ignored, place it after "union" to apply attribute to type declaration}}
16 __attribute__((visibility("hidden"))) __attribute__((aligned)) enum C {C}; // expected-warning{{attribute 'visibility' is ignored, place it after "enum" to apply attribute to type declaration}} \
17 // expected-warning{{attribute 'aligned' is ignored, place it after "enum" to apply attribute to type declaration}}
18 }
19
20 __attribute__((visibility("hidden"))) __attribute__((aligned)) struct D {} d;
21 __attribute__((visibility("hidden"))) __attribute__((aligned)) union E {} e;
22 __attribute__((visibility("hidden"))) __attribute__((aligned)) enum F {F} f;
23