URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 275 |
Rev 338 |
int foo1 ()
|
int foo1 ()
|
{
|
{
|
union { int l; char c[sizeof (int)]; } k1;
|
union { int l; char c[sizeof (int)]; } k1;
|
char *m;
|
char *m;
|
k1.l = 0;
|
k1.l = 0;
|
/* This test variant triggers ADDR_EXPR of k explicitly in order to
|
/* This test variant triggers ADDR_EXPR of k explicitly in order to
|
ensure it's registered with the runtime. */
|
ensure it's registered with the runtime. */
|
m = k1.c;
|
m = k1.c;
|
k1.c [sizeof (int)-1] = m[sizeof (int)-2];
|
k1.c [sizeof (int)-1] = m[sizeof (int)-2];
|
}
|
}
|
|
|
int foo2 ()
|
int foo2 ()
|
{
|
{
|
union { int l; char c[sizeof (int)]; } k2;
|
union { int l; char c[sizeof (int)]; } k2;
|
k2.l = 0;
|
k2.l = 0;
|
/* Since this access is known-in-range, k need not be registered
|
/* Since this access is known-in-range, k need not be registered
|
with the runtime, but then this access better not be instrumented
|
with the runtime, but then this access better not be instrumented
|
either. */
|
either. */
|
k2.c [sizeof (int)-1] ++;
|
k2.c [sizeof (int)-1] ++;
|
return k2.l;
|
return k2.l;
|
}
|
}
|
|
|
int foo3idx = sizeof (int)-1;
|
int foo3idx = sizeof (int)-1;
|
|
|
int foo3 ()
|
int foo3 ()
|
{
|
{
|
union { int l; char c[sizeof (int)]; } k3;
|
union { int l; char c[sizeof (int)]; } k3;
|
k3.l = 0;
|
k3.l = 0;
|
/* NB this test uses foo3idx, an extern variable, to defeat mudflap
|
/* NB this test uses foo3idx, an extern variable, to defeat mudflap
|
known-in-range-index optimizations. */
|
known-in-range-index optimizations. */
|
k3.c [foo3idx] ++;
|
k3.c [foo3idx] ++;
|
return k3.l;
|
return k3.l;
|
}
|
}
|
|
|
int main ()
|
int main ()
|
{
|
{
|
foo1 ();
|
foo1 ();
|
foo2 ();
|
foo2 ();
|
foo3 ();
|
foo3 ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.