1// { dg-do run } 2 3// Copyright (C) 2001 Free Software Foundation, Inc. 4// Contributed by Nathan Sidwell 20 Dec 2001 <nathan@nathan@codesourcery.com> 5 6// PR 160. Wrong code emitted for some reference initializers. 7 8void Foo () 9{ 10} 11 12int fail; 13 14class C 15{ 16 public: 17 int m; 18 int &r; 19 20 C () ; 21}; 22 23C::C () 24 : m (1), r ((Foo (), m)) 25{ 26 m = 10; 27 28 if (r != m) 29 fail = 1; 30 else if (&m != &r) 31 fail = 2; 32} 33int main () 34{ 35 int m (1); 36 int &r ((Foo (),m)); 37 38 m = 10; 39 if (r != m) 40 fail = 3; 41 else if (&r != &m) 42 fail = 4; 43 44 if (!fail) 45 { 46 C c; 47 } 48 return fail; 49} 50