URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* PR c/5681
|
/* PR c/5681
|
This testcase failed on IA-32 at -O0, because safe_from_p
|
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
|
incorrectly assumed it is safe to first write into a.a2 b-1
|
and then read the original value from it. */
|
and then read the original value from it. */
|
|
|
int bar (float);
|
int bar (float);
|
|
|
struct A {
|
struct A {
|
float a1;
|
float a1;
|
int a2;
|
int a2;
|
} a;
|
} a;
|
|
|
int b;
|
int b;
|
|
|
void foo (void)
|
void foo (void)
|
{
|
{
|
a.a2 = bar (a.a1);
|
a.a2 = bar (a.a1);
|
a.a2 = a.a2 < b - 1 ? a.a2 : b - 1;
|
a.a2 = a.a2 < b - 1 ? a.a2 : b - 1;
|
if (a.a2 >= b - 1)
|
if (a.a2 >= b - 1)
|
abort ();
|
abort ();
|
}
|
}
|
|
|
int bar (float x)
|
int bar (float x)
|
{
|
{
|
return 2241;
|
return 2241;
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
a.a1 = 1.0f;
|
a.a1 = 1.0f;
|
b = 3384;
|
b = 3384;
|
foo ();
|
foo ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.