modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20020810-1.c (about) 1 /* PR target/7559 2 This testcase was miscompiled on x86-64, because classify_argument 3 wrongly computed the offset of nested structure fields. */ 4 5 extern void abort (void); 6 7 struct A 8 { 9 long x; 10 }; 11 12 struct R 13 { 14 struct A a, b; 15 }; 16 17 struct R R = { 100, 200 }; 18 19 void f (struct R r) 20 { 21 if (r.a.x != R.a.x || r.b.x != R.b.x) 22 abort (); 23 } 24 25 struct R g (void) 26 { 27 return R; 28 } 29 30 int main (void) 31 { 32 struct R r; 33 f(R); 34 r = g(); 35 if (r.a.x != R.a.x || r.b.x != R.b.x) 36 abort (); 37 return 0; 38 }