1/* Test failed on an architecture that: 2 3 - had 16-bit registers, 4 - passed 64-bit structures in registers, 5 - only allowed SImode values in even numbered registers. 6 7 Before reload, s.i2 in foo() was represented as: 8 9 (subreg:SI (reg:DI 0) 2) 10 11 find_dummy_reload would return (reg:SI 1) for the subreg reload, 12 despite that not being a valid register. */ 13 14struct s 15{ 16 short i1; 17 long i2; 18 short i3; 19}; 20 21struct s foo (struct s s) 22{ 23 s.i2++; 24 return s; 25} 26 27int main () 28{ 29 struct s s = foo ((struct s) { 1000, 2000L, 3000 }); 30 if (s.i1 != 1000 || s.i2 != 2001L || s.i3 != 3000) 31 abort (); 32 exit (0); 33} 34