doc: Document struct-layout-1.exp for ABI checks
[official-gcc.git] / gcc / testsuite / g++.dg / init / static-cdtor1.C
blobd4d85f99c43c1edf486930a3f72f90ccb9a824cd
1 // { dg-do compile { target { lp64 && { i?86-*-linux* x86_64-*-linux* } } } }
2 // { dg-additional-options -fno-use-cxa-atexit }
3 // Make sure we emit initializers in the correct order.
5 // ctors
6 // { dg-final { scan-assembler {_Z41__static_initialization_and_destruction_0v:.*movl   \$var1[^\n]*\n[^\n]*_ZN5LeelaC1Ev[^\n]*\n[^\n]*movl     \$var2[^\n]*\n[^\n]*_ZN5LeelaC1Ev[^\n]*\n[^\n]*movl     \$var3[^\n]*\n[^\n]*_ZN5LeelaC1Ev} { target nonpic } } }
7 // { dg-final { scan-assembler {_Z41__static_initialization_and_destruction_0v:.*leaq   var1[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaC1Ev[^\n]*\n[^\n]*leaq        var2[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaC1Ev[^\n]*\n[^\n]*leaq        var3[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaC1Ev} { target { ! nonpic } } } }
8 // dtors
9 // { dg-final { scan-assembler {_Z41__static_initialization_and_destruction_1v:.*movl   \$var3[^\n]*\n[^\n]*_ZN5LeelaD1Ev[^\n]*\n[^\n]*movl     \$var2[^\n]*\n[^\n]*_ZN5LeelaD1Ev[^\n]*\n[^\n]*movl     \$var1[^\n]*\n[^\n]*_ZN5LeelaD1Ev} { target nonpic } } }
10 // { dg-final { scan-assembler {_Z41__static_initialization_and_destruction_1v:.*leaq   var3[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaD1Ev[^\n]*\n[^\n]*leaq        var2[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaD1Ev[^\n]*\n[^\n]*leaq        var1[^\n]*\n[^\n]*(?:|movq[^\n]*\n[^\n]*)_ZN5LeelaD1Ev} { target { ! nonpic } } } }
12 struct Leela {
13   Leela ();
14   ~Leela ();
17 Leela var1;
18 Leela var2;
19 Leela var3;