|
162 | 162 | // RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s
|
163 | 163 | // RUN: not %clang -### --target=riscv64-linux-android -mbig-endian -O1 -S %s 2>&1 | \
|
164 | 164 | // RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s
|
| 165 | + |
| 166 | +// On ARM backend bare metal targets, frame pointer is omitted |
| 167 | +// RUN: %clang -### --target=arm-arm-none-eabi -S %s 2>&1 | \ |
| 168 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 169 | +// RUN: %clang -### --target=arm-arm-none-eabihf -S %s 2>&1 | \ |
| 170 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 171 | +// RUN: %clang -### --target=arm-arm-none-eabi -S -fno-omit-frame-pointer %s 2>&1 | \ |
| 172 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 173 | +// RUN: %clang -### --target=arm-arm-none-eabihf -S -fno-omit-frame-pointer %s 2>&1 | \ |
| 174 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 175 | +// RUN: %clang -### --target=arm-arm-none-eabi -S -O1 %s 2>&1 | \ |
| 176 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 177 | +// RUN: %clang -### --target=arm-arm-none-eabihf -S -O1 %s 2>&1 | \ |
| 178 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 179 | +// RUN: %clang -### --target=arm-arm-none-eabi -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
| 180 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 181 | +// RUN: %clang -### --target=arm-arm-none-eabihf -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
| 182 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 183 | +// RUN: %clang -### --target=armeb-arm-none-eabi -S %s 2>&1 | \ |
| 184 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 185 | +// RUN: %clang -### --target=thumb-arm-none-eabi -S %s 2>&1 | \ |
| 186 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 187 | +// RUN: %clang -### --target=thumbeb-arm-none-eabi -S %s 2>&1 | \ |
| 188 | +// RUN: FileCheck --check-prefix=KEEP-NONE %s |
| 189 | + |
| 190 | +// Check that for Apple bare metal targets, we're keeping frame pointers by default |
| 191 | +// RUN: %clang -### --target=thumbv6m-apple-none-macho -S %s 2>&1 | \ |
| 192 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 193 | +// RUN: %clang -### --target=thumbv6m-apple-none-macho -S -fno-omit-frame-pointer %s 2>&1 | \ |
| 194 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 195 | +// RUN: %clang -### --target=arm-apple-none-macho -S %s 2>&1 | \ |
| 196 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 197 | +// RUN: %clang -### --target=arm-apple-none-macho -S -fno-omit-frame-pointer %s 2>&1 | \ |
| 198 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 199 | +// RUN: %clang -### --target=thumbv6m-apple-none-macho -S -O1 %s 2>&1 | \ |
| 200 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 201 | +// RUN: %clang -### --target=thumbv6m-apple-none-macho -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
| 202 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 203 | +// RUN: %clang -### --target=arm-apple-none-macho -S -O1 %s 2>&1 | \ |
| 204 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 205 | +// RUN: %clang -### --target=arm-apple-none-macho -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
| 206 | +// RUN: FileCheck --check-prefix=KEEP-ALL %s |
| 207 | + |
| 208 | +// AArch64 bare metal targets behave like hosted targets |
| 209 | +// RUN: %clang -### --target=aarch64-none-elf -S %s 2>&1 | \ |
| 210 | +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 211 | +// RUN: %clang -### --target=aarch64-none-elf -S -O1 %s 2>&1 | \ |
| 212 | +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 213 | +// RUN: %clang -### --target=aarch64-none-elf -S -fno-omit-frame-pointer %s 2>&1 | \ |
| 214 | +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 215 | +// RUN: %clang -### --target=aarch64-none-elf -S -O1 -fno-omit-frame-pointer %s 2>&1 | \ |
| 216 | +// RUN: FileCheck --check-prefix=KEEP-NON-LEAF %s |
| 217 | + |
165 | 218 | void f0() {}
|
166 | 219 | void f1() { f0(); }
|
0 commit comments