• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clangxx -g -DCRT_SHARED -c %s -fPIC -o %tshared.o
2 // RUN: %clangxx -g -c %s -fPIC -o %t.o
3 // RUN: %clangxx -g -shared -o %t.so -nostdlib %crti %crtbegin %tshared.o %libstdcxx -lc -lm %libgcc %crtend %crtn
4 // RUN: %clangxx -g -o %t -nostdlib %crt1 %crti %crtbegin %t.o %libstdcxx -lc -lm %libgcc %t.so %crtend %crtn
5 // RUN: %run %t 2>&1 | FileCheck %s
6 
7 // UNSUPPORTED: arm, aarch64
8 
9 #include <stdio.h>
10 
11 // CHECK: 1
12 // CHECK-NEXT: ~A()
13 
14 #ifdef CRT_SHARED
15 bool G;
C()16 void C() {
17   printf("%d\n", G);
18 }
19 
20 struct A {
AA21   A() { G = true; }
~AA22   ~A() {
23     printf("~A()\n");
24   }
25 };
26 
27 A a;
28 #else
29 void C();
30 
main()31 int main() {
32   C();
33   return 0;
34 }
35 #endif
36