Fix test-suite fallout of default -Wreturn-type.
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / devirt-20.C
blobd5a2c05904d3eef5ec1d84d680322fedb84a756c
1 #include <stdlib.h>
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-release_ssa"  } */
4 namespace {
5 struct A
6 { int a; virtual int foo() {return a;} void bar() {a=7;} };
7 struct B
8 { int b; virtual int foo2() {return b;} void bar2() {b=9;} };
9 struct C : public virtual A, public virtual B { };
10 struct D : public virtual B, public virtual A { };
11 struct E : public C, public D { void bar2() {b=9;} }; }
12 int
13 main(void)
15   struct E e;
16   struct C *c = &e;
17   struct D *d = &e;
18   struct A *a = &e;
19   struct B *b = &e;
20   e.bar();
21   e.bar2();
22   if (e.foo() + e.foo2() != 16)
23     abort ();
24   if (c->foo() + d->foo2() != 16)
25     abort ();
26   if (a->foo() + b->foo2() != 16)
27     abort ();
28   return 0;
30 /* { dg-final { scan-tree-dump-not "abort" "release_ssa"  } } */