24 lines
445 B
C
24 lines
445 B
C
|
/* { dg-do compile } */
|
||
|
/* { dg-options "-O -Wstrict-aliasing -fstrict-aliasing" } */
|
||
|
|
||
|
extern int flag;
|
||
|
|
||
|
int foo() {
|
||
|
|
||
|
int x;
|
||
|
int y = 9;
|
||
|
float* q;
|
||
|
float* r;
|
||
|
|
||
|
if (flag) {
|
||
|
q = (float*) &x; /* { dg-message "initialized" "" { xfail *-*-* } } */
|
||
|
} else {
|
||
|
q = (float*) &y; /* { dg-message "initialized" "" { xfail *-*-* } } */
|
||
|
}
|
||
|
|
||
|
*q = 1.0; /* { dg-warning "does break strict-aliasing" "" { xfail *-*-* } } */
|
||
|
|
||
|
return x;
|
||
|
|
||
|
}
|