| /* PR tree-optimization/93100 - gcc -fsanitize=address inhibits -Wuninitialized |
| { dg-do compile } |
| { dg-options "-Wall -fsanitize=address" } |
| { dg-skip-if "no address sanitizer" { no_fsanitize_address } } */ |
| |
| struct A |
| { |
| _Bool b; |
| int i; |
| }; |
| |
| void warn_A_b_O0 (void) |
| { |
| struct A a; |
| |
| if (a.b) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |
| |
| void warn_A_i_O0 (void) |
| { |
| struct A a; |
| |
| if (a.i) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |
| |
| #pragma GCC optimize ("1") |
| |
| void warn_A_b_O1 (void) |
| { |
| struct A a; |
| |
| if (a.b) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |
| |
| void warn_A_i_O1 (void) |
| { |
| struct A a; |
| |
| if (a.i) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |
| |
| |
| #pragma GCC optimize ("2") |
| |
| void warn_A_b_O2 (void) |
| { |
| struct A a; |
| |
| if (a.b) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |
| |
| void warn_A_i_O2 (void) |
| { |
| struct A a; |
| |
| if (a.i) // { dg-warning "\\\[-Wuninitialized" } |
| { |
| (void)&a; |
| } |
| } |