| /* PR middle-end/65182 - -Wuninitialized fails when pointer to variable |
| later passed to function |
| { dg-do compile } |
| { dg-options "-O0 -Wall" } */ |
| |
| void bar (int *a); |
| |
| int baz (void); |
| |
| __attribute__ ((noipa)) void foo_O0 (int *b) |
| { |
| int a; |
| |
| if (a) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| *b = 0; |
| return; |
| } |
| |
| bar (&a); |
| |
| a = baz (); |
| |
| *b = a + 2; |
| } |
| |
| #pragma GCC optimize ("2") |
| |
| __attribute__ ((noipa)) void foo_O2 (int *b) |
| { |
| int a; |
| |
| if (a) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| *b = 0; |
| return; |
| } |
| |
| bar (&a); |
| |
| a = baz (); |
| |
| *b = a + 3; |
| } |