From 1ec71b33defb8623e66fa13eef37ad7db5b6c772 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Fri, 29 Apr 2016 17:53:00 +0000 Subject: [PATCH] [Clang][Darwin] Define __ARM_DWARF_EH__ for WatchABI Summary: The Darwin armv7k ABI uses Dwarf EH, so we need to set the OS define correctly. Without this the gcc_personality fails to build. Reviewers: t.p.northover Subscribers: aemerson, cfe-commits, rengolin Differential Revision: http://reviews.llvm.org/D19693 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268078 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 4 ++++ test/Preprocessor/arm-target-features.c | 1 + 2 files changed, 5 insertions(+) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index e2a9292dd0..0a87cdf061 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -208,6 +208,10 @@ static void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, if (Triple.isOSDarwin()) Builder.defineMacro("__MACH__"); + // The Watch ABI uses Dwarf EH. + if(Triple.isWatchABI()) + Builder.defineMacro("__ARM_DWARF_EH__"); + PlatformMinVersion = VersionTuple(Maj, Min, Rev); } diff --git a/test/Preprocessor/arm-target-features.c b/test/Preprocessor/arm-target-features.c index 8d8a0afe2f..fd1aebd30e 100644 --- a/test/Preprocessor/arm-target-features.c +++ b/test/Preprocessor/arm-target-features.c @@ -217,6 +217,7 @@ // ARMV7K:#define __ARM_ARCH 7 // ARMV7K:#define __ARM_ARCH_EXT_IDIV__ 1 // ARMV7K:#define __ARM_ARCH_PROFILE 'A' +// ARMV7K:#define __ARM_DWARF_EH__ 1 // ARMV7K:#define __ARM_FEATURE_DSP 1 // ARMV7K:#define __ARM_FP 0xE // ARMV7K:#define __ARM_PCS_VFP 1 -- 2.40.0