re PR c++/13865 ([tree-ssa] dtor runs prematurely for loop-scoped variable)

PR c++/13865
        * c-simplify.c (gimplify_for_stmt): Reorganize to fix cleanups.

[[Split portion of a mixed commit.]]

From-SVN: r76923.2
This commit is contained in:
Jason Merrill 2004-01-29 23:35:26 -05:00
parent 917a9fd4d5
commit eadccbea12
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
// PR c++/13865
// Bug: We were destroying 'a' before executing the loop.
#include <stdio.h>
int i;
int r;
class A
{
public:
A() { printf("A ctor\n"); }
~A()
{
printf("A dtor\n");
if (i != 1)
r = 1;
}
};
int main(int argc, char **argv)
{
for (A a; i < 2; ++i) {
printf("iteration %d\n", i);
}
return r;
}