summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/pr19768.C
blob: 376ca99384213ee1c566e2ecafdd4f441c44d268 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//  PR tree-opt/19768
// tree DSE was removing one store to LL.currentLevel
//  but forgot that since the vop was in an abnormal PHI
//  that we have to update the SSA_NAME which we propagate
//  into the abnormal PHI

// { dg-do compile }
// { dg-options "-O" }

struct LeveLogger
{
  int currentLevel;
};
extern LeveLogger LL;
struct gg
{
  ~gg ( void )
    { LL.currentLevel = 1; }
};
void f(void);
void g ( void )
{
  gg sll;
  {
    gg sll;
    f();
  }
  f();
}