1 // PR c++/40306, c++/40307 2 // { dg-options "-std=c++0x" } 3 // { dg-do run } 4 5 template< typename T > 6 struct test { runtest7 test run() { 8 auto tmp = *this; 9 return tmp; 10 } run_passtest11 test run_pass() { 12 test tmp( *this ); 13 return tmp; 14 } 15 run_failtest16 test run_fail() { 17 auto tmp( *this ); 18 return tmp; 19 } 20 }; 21 main()22int main() 23 { 24 test<int> x; 25 x.run(); 26 x.run_pass(); 27 x.run_fail(); 28 return 0; 29 } 30