xref: /aosp_15_r20/external/clang/test/Driver/constructors.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Test whether or not the driver instructs the backend to use .init_array
2*67e74705SXin Li // sections for global constructors.
3*67e74705SXin Li //
4*67e74705SXin Li // CHECK-INIT-ARRAY: -fuse-init-array
5*67e74705SXin Li // CHECK-NO-INIT-ARRAY-NOT: -fuse-init-array
6*67e74705SXin Li //
7*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
8*67e74705SXin Li // RUN:     -target i386-unknown-linux \
9*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/fake_install_tree \
10*67e74705SXin Li // RUN:     --gcc-toolchain="" \
11*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
12*67e74705SXin Li //
13*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
14*67e74705SXin Li // RUN:     -fno-use-init-array \
15*67e74705SXin Li // RUN:     -target i386-unknown-linux \
16*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/fake_install_tree \
17*67e74705SXin Li // RUN:     --gcc-toolchain="" \
18*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
19*67e74705SXin Li //
20*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
21*67e74705SXin Li // RUN:     -fno-use-init-array -fuse-init-array \
22*67e74705SXin Li // RUN:     -target i386-unknown-linux \
23*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/fake_install_tree \
24*67e74705SXin Li // RUN:     --gcc-toolchain="" \
25*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
26*67e74705SXin Li //
27*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
28*67e74705SXin Li // RUN:     -target i386-unknown-linux \
29*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
30*67e74705SXin Li // RUN:     --gcc-toolchain="" \
31*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
32*67e74705SXin Li //
33*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
34*67e74705SXin Li // RUN:     -fuse-init-array \
35*67e74705SXin Li // RUN:     -target i386-unknown-linux \
36*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
37*67e74705SXin Li // RUN:     --gcc-toolchain="" \
38*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
39*67e74705SXin Li //
40*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
41*67e74705SXin Li // RUN:     -target arm-unknown-linux-androideabi \
42*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
43*67e74705SXin Li // RUN:     --gcc-toolchain="" \
44*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
45*67e74705SXin Li //
46*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
47*67e74705SXin Li // RUN:     -target mipsel-unknown-linux-android \
48*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
49*67e74705SXin Li // RUN:     --gcc-toolchain="" \
50*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
51*67e74705SXin Li //
52*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
53*67e74705SXin Li // RUN:     -target i386-unknown-linux-android \
54*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
55*67e74705SXin Li // RUN:     --gcc-toolchain="" \
56*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
57*67e74705SXin Li //
58*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
59*67e74705SXin Li // RUN:     -target aarch64-none-linux-gnu \
60*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
61*67e74705SXin Li // RUN:     --gcc-toolchain="" \
62*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
63*67e74705SXin Li //
64*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
65*67e74705SXin Li // RUN:     -target aarch64-none-none-eabi \
66*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
67*67e74705SXin Li 
68*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
69*67e74705SXin Li // RUN:     -target arm64-none-linux-gnu \
70*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
71*67e74705SXin Li // RUN:     --gcc-toolchain="" \
72*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
73*67e74705SXin Li //
74*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
75*67e74705SXin Li // RUN:     -target arm64-none-none-eabi \
76*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
77