mirror of
https://github.com/nArnoSNES/tcc-65816.git
synced 2024-06-12 13:29:29 +00:00
34 lines
623 B
C
34 lines
623 B
C
/* Test failed on an architecture that:
|
|
|
|
- had 16-bit registers,
|
|
- passed 64-bit structures in registers,
|
|
- only allowed SImode values in even numbered registers.
|
|
|
|
Before reload, s.i2 in foo() was represented as:
|
|
|
|
(subreg:SI (reg:DI 0) 2)
|
|
|
|
find_dummy_reload would return (reg:SI 1) for the subreg reload,
|
|
despite that not being a valid register. */
|
|
|
|
struct s
|
|
{
|
|
short i1;
|
|
long i2;
|
|
short i3;
|
|
};
|
|
|
|
struct s foo (struct s s)
|
|
{
|
|
s.i2++;
|
|
return s;
|
|
}
|
|
|
|
int main ()
|
|
{
|
|
struct s s = foo ((struct s) { 1000, 2000L, 3000 });
|
|
if (s.i1 != 1000 || s.i2 != 2001L || s.i3 != 3000)
|
|
abort ();
|
|
exit (0);
|
|
}
|