| // { dg-do run } | |
| // Copyright (C) 2001 Free Software Foundation, Inc. | |
| // Contributed by Nathan Sidwell 20 Dec 2001 <nathan@nathan@codesourcery.com> | |
| // PR 160. Wrong code emitted for some reference initializers. | |
| void Foo () | |
| { | |
| } | |
| int fail; | |
| class C | |
| { | |
| public: | |
| int m; | |
| int &r; | |
| C () ; | |
| }; | |
| C::C () | |
| : m (1), r ((Foo (), m)) | |
| { | |
| m = 10; | |
| if (r != m) | |
| fail = 1; | |
| else if (&m != &r) | |
| fail = 2; | |
| } | |
| int main () | |
| { | |
| int m (1); | |
| int &r ((Foo (),m)); | |
| m = 10; | |
| if (r != m) | |
| fail = 3; | |
| else if (&r != &m) | |
| fail = 4; | |
| if (!fail) | |
| { | |
| C c; | |
| } | |
| return fail; | |
| } |