mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-05-31 22:41:28 +00:00
35 lines
469 B
C
35 lines
469 B
C
/* PR c/5681
|
|
This testcase failed on IA-32 at -O0, because safe_from_p
|
|
incorrectly assumed it is safe to first write into a.a2 b-1
|
|
and then read the original value from it. */
|
|
|
|
int bar (float);
|
|
|
|
struct A {
|
|
float a1;
|
|
int a2;
|
|
} a;
|
|
|
|
int b;
|
|
|
|
void foo (void)
|
|
{
|
|
a.a2 = bar (a.a1);
|
|
a.a2 = a.a2 < b - 1 ? a.a2 : b - 1;
|
|
if (a.a2 >= b - 1)
|
|
abort ();
|
|
}
|
|
|
|
int bar (float x)
|
|
{
|
|
return 2241;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
a.a1 = 1.0f;
|
|
b = 3384;
|
|
foo ();
|
|
return 0;
|
|
}
|