1 // { dg-do run } 2 // GROUPS passed destructors 3 // dtor file 4 // Message-Id: <9301242117.AA04053@cs.rice.edu> 5 // From: dougm@cs.rice.edu (Doug Moore) 6 // Subject: 2.3.3: premature dtor of temp? 7 // Date: Sun, 24 Jan 93 15:17:07 CST 8 9 #include <stdio.h> 10 #include <stdlib.h> 11 12 int killed = 0; 13 14 class Foo 15 { 16 int a; 17 public: Foo()18 Foo() 19 :a(0) {;} ~Foo()20 ~Foo() { killed++;} 21 Foo& operator << (int b) 22 { 23 a += b; 24 if (killed) 25 { 26 printf ("FAIL\n"); 27 exit (1); 28 } 29 return *this; 30 } 31 }; 32 main()33int main() 34 { 35 Foo() << 1 << 3 << 5 << 7; 36 printf ("PASS\n"); 37 } 38 39