1 /* Verify the variable attribute "uninitialized". */
2 /* { dg-do compile } */
3 /* { dg-options "-ftrivial-auto-var-init=zero -fdump-tree-gimple" } */
4
5 extern void bar (char, long long *) __attribute__ ((uninitialized)); /* { dg-warning "'uninitialized' attribute ignored because" "is not a variable" } */
6 extern int __attribute__ ((uninitialized)) boo1; /* { dg-warning "'uninitialized' attribute ignored because 'boo1' is not a local variable" } */
7 static int __attribute__ ((uninitialized)) boo2; /* { dg-warning "'uninitialized' attribute ignored because 'boo2' is not a local variable" } */
8
9 void foo()
10 {
11 short temp1;
12 long long __attribute__ ((uninitialized)) temp2[10];
13 static int __attribute__ ((uninitialized)) boo3; /* { dg-warning "'uninitialized' attribute ignored because 'boo3' is not a local variable" } */
14
15 bar (temp1, temp2);
16 return;
17 }
18
19 /* { dg-final { scan-tree-dump "temp1 = .DEFERRED_INIT \\(2, 2, \&\"temp1\"" "gimple" } } */
20 /* { dg-final { scan-tree-dump-not "temp2 = .DEFERRED_INIT \\(8, 2, \&\"temp2\"" "gimple" } } */