| // { dg-do run } |
| // { dg-options "-O2" } |
| // Origin: suckfish@ihug.co.nz |
| |
| // DECLARATIONS |
| |
| struct Record { |
| Record (int bb) : |
| b (bb) |
| { } |
| int extra; // Having an extra member in record is crucial. |
| int b; |
| }; |
| |
| struct Container { |
| Record record; |
| // The const on the next line is crucial. |
| Container ( const Record b) : record(b) {} |
| }; |
| |
| |
| // TEST FOR CORRECT BEHAVIOR |
| |
| int myArray[3]; |
| int * intp = myArray; |
| |
| void use_pair (const Container & c) |
| { |
| *intp++ = c.record.b; |
| } |
| |
| extern "C" int printf (const char *,...); |
| |
| int main() |
| { |
| use_pair (Container (1234)); |
| |
| if (myArray[0] != 1234) |
| return 1; |
| } |