Clang Project

clang_source_code/test/Driver/constructors.c
1// Test whether or not the driver instructs the backend to use .init_array
2// sections for global constructors.
3//
4// CHECK-INIT-ARRAY: -fuse-init-array
5// CHECK-NO-INIT-ARRAY-NOT: -fuse-init-array
6//
7// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
8// RUN:     -target i386-unknown-linux \
9// RUN:     --sysroot=%S/Inputs/resource_dir \
10// RUN:     --gcc-toolchain="" \
11// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
12//
13// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
14// RUN:     -target i386-unknown-linux \
15// RUN:     --sysroot=%S/Inputs/fake_install_tree \
16// RUN:     --gcc-toolchain="" \
17// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
18//
19// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
20// RUN:     -fno-use-init-array \
21// RUN:     -target i386-unknown-linux \
22// RUN:     --sysroot=%S/Inputs/fake_install_tree \
23// RUN:     --gcc-toolchain="" \
24// RUN:   | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
25//
26// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
27// RUN:     -fno-use-init-array -fuse-init-array \
28// RUN:     -target i386-unknown-linux \
29// RUN:     --sysroot=%S/Inputs/fake_install_tree \
30// RUN:     --gcc-toolchain="" \
31// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
32//
33// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
34// RUN:     -target i386-unknown-linux \
35// RUN:     --sysroot=%S/Inputs/basic_linux_tree \
36// RUN:     --gcc-toolchain="" \
37// RUN:   | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
38//
39// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
40// RUN:     -fuse-init-array \
41// RUN:     -target i386-unknown-linux \
42// RUN:     --sysroot=%S/Inputs/basic_linux_tree \
43// RUN:     --gcc-toolchain="" \
44// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
45//
46// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
47// RUN:     -target arm-unknown-linux-androideabi \
48// RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
49// RUN:     --gcc-toolchain="" \
50// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
51//
52// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
53// RUN:     -target mipsel-unknown-linux-android \
54// RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
55// RUN:     --gcc-toolchain="" \
56// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
57//
58// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
59// RUN:     -target i386-unknown-linux-android \
60// RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
61// RUN:     --gcc-toolchain="" \
62// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
63//
64// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
65// RUN:     -target aarch64-none-linux-gnu \
66// RUN:     --sysroot=%S/Inputs/basic_linux_tree \
67// RUN:     --gcc-toolchain="" \
68// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
69//
70// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
71// RUN:     -target aarch64-none-none-eabi \
72// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
73
74// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
75// RUN:     -target arm64-none-linux-gnu \
76// RUN:     --sysroot=%S/Inputs/basic_linux_tree \
77// RUN:     --gcc-toolchain="" \
78// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
79//
80// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
81// RUN:     -target arm64-none-none-eabi \
82// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
83
84// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
85// RUN:     -target i386-unknown-freebsd11 \
86// RUN:   | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
87
88// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1       \
89// RUN:     -target i386-unknown-freebsd12 \
90// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
91//
92// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1        \
93// RUN:     -target sparc-sun-solaris2.11 \
94// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
95//
96// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1        \
97// RUN:     -target i386-pc-solaris2.11 \
98// RUN:   | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
99