// { dg-do run } // Copyright (C) 2001 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 20 Dec 2001 // 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; }