Merge from mainline.
[official-gcc.git] / gcc / testsuite / g++.dg / tree-ssa / pr17517.C
blobbcd5e91dbae880fbb48936b9a58e0377d129f682
1 // Test PR 17517.  Test case provided by Serge Belyshev.
2  
3  /* { dg-do compile } */
4  /* { dg-options "-O2" } */
7 extern void foo ();
9 struct Ptr {
10   int * ptr;
11   Ptr () { ptr = 0; }
12   ~Ptr() { delete ptr; }
13   Ptr &operator= (int * p) { ptr = p; return *this; }
16 int *new_checker () { foo (); return 0; }
18 void pipe (int c)
20   Ptr checker;
21   
22   foo ();
23   for (;;)
24     {
25     switch (c)
26       {
27     case '-':
28       checker = new_checker ();
29       break;
30       }
31     }