summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-05-13 18:58:36 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-05-13 18:58:36 +0000
commitcc1edb5a4515e2cca8fa66cdd5d966801411e71f (patch)
treea99557db7ccfcfc81d9d720f51c35ca3ca138430
parent4645b44fc6de11196e971a7b0b1135b9a1b65fe9 (diff)
downloadbcm5719-llvm-cc1edb5a4515e2cca8fa66cdd5d966801411e71f.tar.gz
bcm5719-llvm-cc1edb5a4515e2cca8fa66cdd5d966801411e71f.zip
Add __ARM_DWARF_EH__ to signify the use of Itanium ABI for unwind
instructions. llvm-svn: 208719
-rw-r--r--clang/lib/Basic/Targets.cpp11
-rw-r--r--clang/test/Preprocessor/init.c1
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 84ecd71691b..2fc8eb69e1c 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -384,6 +384,17 @@ protected:
Builder.defineMacro("__ELF__");
if (Opts.POSIXThreads)
Builder.defineMacro("_POSIX_THREADS");
+
+ switch (Triple.getArch()) {
+ default:
+ break;
+ case llvm::Triple::arm:
+ case llvm::Triple::armeb:
+ case llvm::Triple::thumb:
+ case llvm::Triple::thumbeb:
+ Builder.defineMacro("__ARM_DWARF_EH__");
+ break;
+ }
}
public:
NetBSDTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index bbbc5fb2333..358612fec18 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -946,6 +946,7 @@
// ARM-NETBSD-NOT:#define __ARMEB__ 1
// ARM-NETBSD:#define __ARMEL__ 1
// ARM-NETBSD:#define __ARM_ARCH_6J__ 1
+// ARM-NETBSD:#define __ARM_DWARF_EH__ 1
// ARM-NETBSD:#define __ARM_EABI__ 1
// ARM-NETBSD-NOT:#define __ARM_BIG_ENDIAN 1
// ARM-NETBSD:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
OpenPOWER on IntegriCloud