| // { dg-do run } |
| // GROUPS passed code-generation |
| // Check that sub-word sized structs/classes are passed correctly |
| // if the struct/class has a constructor (i.e. ANY constructor). |
| |
| extern "C" int printf (const char *, ...); |
| |
| struct base { |
| unsigned int f1 : 8; |
| unsigned int f2 : 8; |
| |
| base (int ii) |
| { |
| } |
| }; |
| |
| base global_base (7); |
| |
| int test2 (base formal_base); |
| |
| int main () |
| { |
| global_base.f1 = 0x55; |
| global_base.f2 = 0xee; |
| |
| if (test2 (global_base) == 0) |
| printf ("PASS\n"); |
| else |
| { printf ("FAIL\n"); return 1; } |
| |
| return 0; |
| } |
| |
| int test2 (base formal_base) |
| { |
| if (formal_base.f1 != global_base.f1) |
| return -1; |
| if (formal_base.f2 != global_base.f2) |
| return -1; |
| return 0; |
| } |