[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Driver / as-options.s
blob1e5f392de4555031106459b5664104d0d5f58663
1 // PR21000: Test that -I is passed to both external and integrated assemblers.
3 // RUN: %clang --target=x86_64-linux-gnu -c -no-integrated-as %s \
4 // RUN: -Ifoo_dir -### 2>&1 \
5 // RUN: | FileCheck %s
7 // RUN: %clang --target=x86_64-linux-gnu -c -no-integrated-as %s \
8 // RUN: -I foo_dir -### 2>&1 \
9 // RUN: | FileCheck %s
11 // RUN: %clang --target=x86_64-linux-gnu -c -integrated-as %s \
12 // RUN: -Ifoo_dir -### 2>&1 \
13 // RUN: | FileCheck %s
15 // RUN: %clang --target=x86_64-linux-gnu -c -integrated-as %s \
16 // RUN: -I foo_dir -### 2>&1 \
17 // RUN: | FileCheck %s
19 // Other GNU targets
21 // RUN: %clang --target=aarch64-linux-gnu -c -no-integrated-as %s \
22 // RUN: -Ifoo_dir -### 2>&1 \
23 // RUN: | FileCheck %s
25 // RUN: %clang --target=aarch64-linux-gnu -c -integrated-as %s \
26 // RUN: -Ifoo_dir -### 2>&1 \
27 // RUN: | FileCheck %s
29 // RUN: %clang --target=armv7-linux-gnueabihf -c -no-integrated-as %s \
30 // RUN: -Ifoo_dir -### 2>&1 \
31 // RUN: | FileCheck %s
33 // RUN: %clang --target=armv7-linux-gnueabihf -c -integrated-as %s \
34 // RUN: -Ifoo_dir -### 2>&1 \
35 // RUN: | FileCheck %s
37 // CHECK: "-I" "foo_dir"
39 // Test that assembler options don't cause warnings when there's no assembler
40 // stage.
42 // RUN: %clang -mincremental-linker-compatible -E -fintegrated-as \
43 // RUN: -o /dev/null -x c++ %s 2>&1 \
44 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
45 // RUN: %clang -mincremental-linker-compatible -E -fno-integrated-as \
46 // RUN: -o /dev/null -x c++ %s 2>&1 \
47 // RUN: | FileCheck --check-prefix=WARN --allow-empty %s
49 // RUN: %clang -mincremental-linker-compatible -E -fintegrated-as \
50 // RUN: -o /dev/null -x assembler-with-cpp %s 2>&1 \
51 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
52 // RUN: %clang -mincremental-linker-compatible -E -fno-integrated-as \
53 // RUN: -o /dev/null -x assembler-with-cpp %s 2>&1 \
54 // RUN: | FileCheck --check-prefix=WARN --allow-empty %s
56 // RUN: %clang -mimplicit-it=always --target=armv7-linux-gnueabi -E \
57 // RUN: -fintegrated-as -o /dev/null -x c++ %s 2>&1 \
58 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
59 // RUN: %clang -mimplicit-it=always --target=armv7-linux-gnueabi -E \
60 // RUN: -fno-integrated-as -o /dev/null -x c++ %s 2>&1 \
61 // RUN: | FileCheck --check-prefix=WARN --allow-empty %s
63 // RUN: %clang -mimplicit-it=always --target=armv7-linux-gnueabi -E \
64 // RUN: -fintegrated-as -o /dev/null -x assembler-with-cpp %s 2>&1 \
65 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
66 // RUN: %clang -mimplicit-it=always --target=armv7-linux-gnueabi -E \
67 // RUN: -fno-integrated-as -o /dev/null -x assembler-with-cpp %s 2>&1 \
68 // RUN: | FileCheck --check-prefix=WARN --allow-empty %s
70 // RUN: %clang -Wa,-mbig-obj --target=i386-pc-windows -E -fintegrated-as \
71 // RUN: -o /dev/null -x c++ %s 2>&1 \
72 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
73 // RUN: %clang -Wa,-mbig-obj --target=i386-pc-windows -E -fno-integrated-as \
74 // RUN: -o /dev/null -x c++ %s 2>&1 \
75 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
77 // RUN: %clang -Wa,-mbig-obj --target=i386-pc-windows -E -fintegrated-as \
78 // RUN: -o /dev/null -x assembler-with-cpp %s 2>&1 \
79 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
80 // RUN: %clang -Wa,-mbig-obj --target=i386-pc-windows -E -fno-integrated-as \
81 // RUN: -o /dev/null -x assembler-with-cpp %s 2>&1 \
82 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
84 // RUN: %clang -Xassembler -mbig-obj --target=i386-pc-windows -E -fintegrated-as \
85 // RUN: -o /dev/null -x c++ %s 2>&1 \
86 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
87 // RUN: %clang -Xassembler -mbig-obj --target=i386-pc-windows -E \
88 // RUN: -fno-integrated-as -o /dev/null -x c++ %s 2>&1 \
89 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
91 // RUN: %clang -Xassembler -mbig-obj --target=i386-pc-windows -E -fintegrated-as \
92 // RUN: -o /dev/null -x assembler-with-cpp %s 2>&1 \
93 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
94 // RUN: %clang -Xassembler -mbig-obj --target=i386-pc-windows -E \
95 // RUN: -fno-integrated-as -o /dev/null -x assembler-with-cpp %s 2>&1 \
96 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
98 // NOWARN-NOT: unused
100 // Test that unsupported arguments do not cause errors when -fno-integrated-as
101 // is set.
102 // RUN: %clang -Wa,-mno-warn-deprecated -fno-integrated-as %s -S 2>&1 \
103 // RUN: | FileCheck --check-prefix=NOERROR --allow-empty %s
104 // NOERROR-NOT: error: unsupported argument '-mno-warn-deprecated' to option 'Wa,'
106 // -Wa flags shouldn't cause warnings without an assembler stage with
107 // -fno-integrated-as either.
108 // RUN: %clang -Wa,-mno-warn-deprecated -fno-integrated-as -x c++ %s -S 2>&1 \
109 // RUN: -o /dev/null \
110 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
112 // But -m flags for the integrated assembler _should_ warn if the integrated
113 // assembler is not in use.
114 // RUN: %clang -mrelax-all -fintegrated-as -x c++ %s -S -o /dev/null 2>&1 \
115 // RUN: | FileCheck --check-prefix=NOWARN --allow-empty %s
116 // RUN: %clang -mrelax-all -fno-integrated-as -x c++ %s -S -o /dev/null 2>&1 \
117 // RUN: | FileCheck --check-prefix=WARN --allow-empty %s
118 // WARN: unused
120 // Test that -g is passed through to GAS.
121 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g %s -### 2>&1 | \
122 // RUN: FileCheck --check-prefix=DEBUG %s
123 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g0 -g %s -### 2>&1 | \
124 // RUN: FileCheck --check-prefix=DEBUG %s
125 // DEBUG: "-g" "-gdwarf-5"
126 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g -g0 %s -### 2>&1 | \
127 // RUN: FileCheck --check-prefix=NODEBUG %s
128 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-5 -g0 %s -### 2>&1 | \
129 // RUN: FileCheck --check-prefix=NODEBUG %s
130 // NODEBUG-NOT: "-g"
131 // NODEBUG-NOT: "-gdwarf-
133 // Test that -gdwarf-* is passed through to GAS.
134 // TODO: test without -g
135 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-5 %s -### 2>&1 | \
136 // RUN: FileCheck --check-prefix=GDWARF5 %s
137 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-4 %s -### 2>&1 | \
138 // RUN: FileCheck --check-prefix=GDWARF4 %s
139 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-3 %s -### 2>&1 | \
140 // RUN: FileCheck --check-prefix=GDWARF3 %s
141 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-2 %s -### 2>&1 | \
142 // RUN: FileCheck --check-prefix=GDWARF2 %s
143 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf %s -### 2>&1 | \
144 // RUN: FileCheck --check-prefix=GDWARF5 %s
146 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -gdwarf-5 %s -### 2>&1 | \
147 // RUN: FileCheck --check-prefix=GDWARF5 %s
148 // RUN: %clang --target=aarch64-linux-gnu -fno-integrated-as -g \
149 // RUN: -fdebug-default-version=2 %s -### 2>&1 | FileCheck --check-prefix=GDWARF2 %s
151 // GDWARF5: "-gdwarf-5"
152 // GDWARF4: "-gdwarf-4"
153 // GDWARF3: "-gdwarf-3"
154 // GDWARF2: "-gdwarf-2"