summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/ipa/devirt-38.C
blob: fdb5c6235337e23d23836dd9146facadcc6f6e8d (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
30
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-ccp1"  } */
class SnmpSyntax
{
public:
  virtual SnmpSyntax *m_fn1 () const;
  ~SnmpSyntax () {}
  virtual SnmpSyntax &operator=(const SnmpSyntax &);
};

class A : public SnmpSyntax
{
public:
  A (int);
  SnmpSyntax *m_fn1 () const { return 0; } 
  SnmpSyntax &operator=(const SnmpSyntax &);
};
int a;
void fn1 ()
{
  for (;; a++)
    switch (0)
    case 0:
      {
        A b (0);
        SnmpSyntax &c = b;
        c.m_fn1 ();
      }
}
/* { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "ccp1"  } } */