Skip to content

Commit d953a8d

Browse files
committed
Add Apple embedded tests
also add a few more non-apple embedded tests and make isARMBareMetal slightly more elegant
1 parent 9aeb61f commit d953a8d

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

clang/lib/Driver/ToolChains/BareMetal.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,11 @@ namespace driver {
133133
namespace toolchains {
134134
/// Is the triple {arm,armeb,thumb,thumbeb}-none-none-{eabi,eabihf} ?
135135
bool isARMBareMetal(const llvm::Triple &Triple) {
136-
if (Triple.getArch() != llvm::Triple::arm &&
137-
Triple.getArch() != llvm::Triple::thumb &&
138-
Triple.getArch() != llvm::Triple::armeb &&
139-
Triple.getArch() != llvm::Triple::thumbeb)
136+
auto arch = Triple.getArch();
137+
if (arch != llvm::Triple::arm &&
138+
arch != llvm::Triple::thumb &&
139+
arch != llvm::Triple::armeb &&
140+
arch != llvm::Triple::thumbeb)
140141
return false;
141142

142143
if (Triple.getVendor() != llvm::Triple::UnknownVendor)

clang/test/Driver/frame-pointer-elim.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,30 @@
180180
// RUN: FileCheck --check-prefix=KEEP-ALL %s
181181
// RUN: %clang -### --target=arm-arm-none-eabihf -S -O1 -fno-omit-frame-pointer %s 2>&1 | \
182182
// 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
183207

184208
// AArch64 bare metal targets behave like hosted targets
185209
// RUN: %clang -### --target=aarch64-none-elf -S %s 2>&1 | \

0 commit comments

Comments
 (0)