OSDN Git Service

PR c++/28432
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / other / unused1.C
1 /* { dg-do compile } */
2 /* { dg-options "-g" } */
3
4 /* Make sure we didn't eliminate casted types because we thought they were
5    unused.  */
6
7 void *voidp;
8
9 struct foo { int i; };
10 int bar (void)
11 {
12     return ((struct foo *)0x1234)->i;
13 }
14
15 struct boo { int i; };
16 int bar2 (void)
17 {
18   return reinterpret_cast<struct boo *>(0xC0FFEE)->i;
19 }
20
21 struct cue { int i; };
22 int bar3 (void)
23 {
24   return static_cast<struct cue *>(voidp)->i;
25 }
26
27 class printer { public: int i; };
28 const printer *dotmatrix;
29 int bar4 (void)
30 {
31   return const_cast<printer *>(dotmatrix)->i;
32 }
33
34 class class1 { virtual ~class1(); } *c1;
35 class class2 : class1 { char j; };
36 int bar5 (void)
37 {
38   if (dynamic_cast <class2 *>(c1))
39     return 5;
40   else
41     return 6;
42 }
43 /* { dg-final { scan-assembler "foo" } } */
44 /* { dg-final { scan-assembler "boo" } } */
45 /* { dg-final { scan-assembler "cue" } } */
46 /* { dg-final { scan-assembler "stringz?\t\"class2\"" } } */
47 /* { dg-final { scan-assembler "stringz?\t\"printer\"" } } */