xref: /llvm-project/clang/test/Sema/attr-uninitialized.c (revision e765e0bc8ed06ebb186a9905227273517f0b7240)
1 // RUN: %clang_cc1 %s -verify -fsyntax-only
2 
good(void)3 void good(void) {
4   int dont_initialize_me __attribute((uninitialized));
5 }
6 
bad(void)7 void bad(void) {
8   int im_bad __attribute((uninitialized("zero")));  // expected-error {{'uninitialized' attribute takes no arguments}}
9   static int im_baaad __attribute((uninitialized)); // expected-warning {{'uninitialized' attribute only applies to local variables}}
10 }
11 
12 extern int come_on __attribute((uninitialized));                    // expected-warning {{'uninitialized' attribute only applies to local variables}}
13 int you_know __attribute((uninitialized));                          // expected-warning {{'uninitialized' attribute only applies to local variables}}
14 static int and_the_whole_world_has_to __attribute((uninitialized)); // expected-warning {{'uninitialized' attribute only applies to local variables}}
15 
answer_right_now(void)16 void answer_right_now(void) __attribute((uninitialized)) {}                        // expected-warning {{'uninitialized' attribute only applies to local variables}}
just_to_tell_you_once_again(__attribute ((uninitialized))int whos_bad)17 void just_to_tell_you_once_again(__attribute((uninitialized)) int whos_bad) {} // expected-warning {{'uninitialized' attribute only applies to local variables}}
18 
19 struct TheWordIsOut {
20   __attribute((uninitialized)) int youre_doin_wrong; // expected-warning {{'uninitialized' attribute only applies to local variables}}
21 } __attribute((uninitialized));                      // expected-warning {{'uninitialized' attribute only applies to local variables}}
22