summaryrefslogtreecommitdiffstats
path: root/clang/test/Driver/frame-pointer-elim.c
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-08-23 18:12:58 +0000
committerTim Northover <tnorthover@apple.com>2016-08-23 18:12:58 +0000
commitc0f6c9b8c16d90ca6886daa8679685d485acc8a6 (patch)
tree5eb76b5b62996d6c52c0ce2b2d2899e0abb96720 /clang/test/Driver/frame-pointer-elim.c
parentc3ea5e1afc17f110c0ade9a34b265408cdcefeeb (diff)
downloadbcm5719-llvm-c0f6c9b8c16d90ca6886daa8679685d485acc8a6.tar.gz
bcm5719-llvm-c0f6c9b8c16d90ca6886daa8679685d485acc8a6.zip
ARM-Darwin: ignore and diagnose attempts to omit frame pointer.
iOS (and other 32-bit ARM variants) always require a valid frame pointer to improve backtraces. Previously the -fomit-frame-pointer and -momit-leaf-frame-pointer options were being silently discarded via hacks in the backend. It's better if Clang configures itself to emit the correct IR and warns about (ignored) attempts to override this. llvm-svn: 279546
Diffstat (limited to 'clang/test/Driver/frame-pointer-elim.c')
-rw-r--r--clang/test/Driver/frame-pointer-elim.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Driver/frame-pointer-elim.c b/clang/test/Driver/frame-pointer-elim.c
index 139c0ccb952..d2a2715731c 100644
--- a/clang/test/Driver/frame-pointer-elim.c
+++ b/clang/test/Driver/frame-pointer-elim.c
@@ -35,6 +35,24 @@
// RUN: FileCheck --check-prefix=OMIT_LEAF %s
// OMIT_LEAF: "-momit-leaf-frame-pointer"
+// RUN: %clang -### -target armv7s-apple-ios -fomit-frame-pointer %s 2>&1 | \
+// RUN: FileCheck --check-prefix=WARN-OMIT-7S %s
+// WARN-OMIT-7S: warning: optimization flag '-fomit-frame-pointer' is not supported for target 'armv7s'
+// WARN-OMIT-7S: "-mdisable-fp-elim"
+// WARN-OMIT-7S-NOT: "-momit-leaf-frame-pointer"
+
+// RUN: %clang -### -target armv7k-apple-watchos -fomit-frame-pointer %s 2>&1 | \
+// RUN: FileCheck --check-prefix=WARN-OMIT-7K %s
+// WARN-OMIT-7K: warning: optimization flag '-fomit-frame-pointer' is not supported for target 'armv7k'
+// WARN-OMIT-7K: "-mdisable-fp-elim"
+// WARN-OMIT-7K-NOT: "-momit-leaf-frame-pointer"
+
+// RUN: %clang -### -target armv7s-apple-ios8.0 -momit-leaf-frame-pointer %s 2>&1 | \
+// RUN: FileCheck --check-prefix=WARN-OMIT-LEAF-7S %s
+// WARN-OMIT-LEAF-7S: warning: optimization flag '-momit-leaf-frame-pointer' is not supported for target 'armv7s'
+// WARN-OMIT-LEAF-7S: "-mdisable-fp-elim"
+// WARN-OMIT-LEAF-7S-NOT: "-momit-leaf-frame-pointer"
+
// On the PS4, we default to omitting the frame pointer on leaf functions
// (OMIT_LEAF check line is above)
// RUN: %clang -### -target x86_64-scei-ps4 -S %s 2>&1 | \
OpenPOWER on IntegriCloud