* gimple-ssa-store-merging.c (struct store_immediate_info): Add
[official-gcc.git] / gcc / testsuite / g++.dg / pubtypes.C
blob8f89c4b6ba360a280f4a65e3f43a6eb395ea638e
1 /* Radar 4535968 */
2 /* { dg-do compile { target *-*-darwin* } } */
3 /* { dg-options "-O0 -gdwarf-2 -dA -fno-eliminate-unused-debug-types" } */
4 /* { dg-final { scan-assembler "__debug_pubtypes" } } */
5 /* { dg-final { scan-assembler "long+\[ \t\]+\(0x\)?\[0-9a-f]+\[ \t\n\]+\[#;@]+\[ \t\]+Pub Info Length" } } */
6 /* { dg-final { scan-assembler "\"empty\\\\0\"+\[ \t\]+\[#;@]+\[ \t\]+external name" } } */
7 /* { dg-final { scan-assembler "\"A\\\\0\"+\[ \t\]+\[#;@]+\[ \t\]+external name" } } */
8 /* { dg-final { scan-assembler "\"B\\\\0\"+\[ \t\]+\[#;@]+\[ \t\]+external name" } } */
11 struct A
13   virtual ~A ();
14   int a1;
17 A::~A()
19   a1 = 800;
22 struct B : public A
24   virtual ~B ();
25   int b1;
26   int b2;
29 B::~B()
31   a1 = 900;
32   b1 = 901;
33   b2 = 902;
36 // Stop the compiler from optimizing away data.
37 void refer (A *)
39   ;
42 struct empty {};
44 // Stop the compiler from optimizing away data.
45 void refer (empty *)
47   ;
50 int main (void)
52   A alpha, *aap, *abp;
53   B beta, *bbp;
54   empty e;
56   alpha.a1 = 100;
57   beta.a1 = 200; beta.b1 = 201; beta.b2 = 202;
59   aap = α refer (aap);
60   abp = β  refer (abp);
61   bbp = β  refer (bbp);
62   refer (&e);
64   return 0;  // marker return 0
65 } // marker close brace