URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
struct s {long a; int b;};
|
struct s {long a; int b;};
|
|
|
int foo(int x, void *y)
|
int foo(int x, void *y)
|
{
|
{
|
switch(x) {
|
switch(x) {
|
case 0: return ((struct s*)y)->a;
|
case 0: return ((struct s*)y)->a;
|
case 1: return *(signed char*)y;
|
case 1: return *(signed char*)y;
|
case 2: return *(short*)y;
|
case 2: return *(short*)y;
|
}
|
}
|
abort();
|
abort();
|
}
|
}
|
|
|
int main ()
|
int main ()
|
{
|
{
|
struct s s;
|
struct s s;
|
short sh[10];
|
short sh[10];
|
signed char c[10];
|
signed char c[10];
|
int i;
|
int i;
|
|
|
s.a = 1;
|
s.a = 1;
|
s.b = 2;
|
s.b = 2;
|
for (i = 0; i < 10; i++) {
|
for (i = 0; i < 10; i++) {
|
sh[i] = i;
|
sh[i] = i;
|
c[i] = i;
|
c[i] = i;
|
}
|
}
|
|
|
if (foo(0, &s) != 1) abort();
|
if (foo(0, &s) != 1) abort();
|
if (foo(1, c+3) != 3) abort();
|
if (foo(1, c+3) != 3) abort();
|
if (foo(2, sh+3) != 3) abort();
|
if (foo(2, sh+3) != 3) abort();
|
exit(0);
|
exit(0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.