| // { dg-do run } |
| // GROUPS passed code-generation |
| // Check that passing things which are not a multiple of |
| // 4 bytes in size doesn't mess up other subsequent parameters. |
| |
| extern "C" int printf (const char *, ...); |
| |
| struct base { |
| int f1 : 8; |
| int f2 : 8; |
| }; |
| |
| base global_base; |
| |
| int val1; |
| |
| int test2 (struct base formal_base, int v1); |
| |
| int main () |
| { |
| val1 = 0x5e5e; |
| return test2 (global_base, val1); |
| } |
| |
| int test2 (struct base formal_base, int v1) |
| { |
| formal_base.f1 = formal_base.f2; // prevent warnings |
| |
| if (v1 != 0x5e5e) |
| { printf ("FAIL\n"); return 1; } |
| else |
| printf ("PASS\n"); |
| |
| return 0; |
| } |