Commit eadccbea by Jason Merrill

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
parent 917a9fd4
// 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment