aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGException.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-05-28 19:43:36 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-05-28 19:43:36 +0000
commit8019c45024be3026f854e3d22bfd89842be82266 (patch)
tree6bdc718e8931d9f16dd6bb1a02d7dbd8dc5b6868 /lib/CodeGen/CGException.cpp
parent450f79340808e54cd4b39738f943217f6fc0c2be (diff)
Fix personality function name when using SjLj exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104999 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGException.cpp')
-rw-r--r--lib/CodeGen/CGException.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp
index ddc1c77433..90edd19a33 100644
--- a/lib/CodeGen/CGException.cpp
+++ b/lib/CodeGen/CGException.cpp
@@ -126,9 +126,12 @@ static llvm::Constant *getTerminateFn(CodeGenFunction &CGF) {
static llvm::Constant *getPersonalityFn(CodeGenModule &CGM) {
const char *PersonalityFnName = "__gcc_personality_v0";
LangOptions Opts = CGM.getLangOptions();
- if (Opts.CPlusPlus)
+ if (Opts.CPlusPlus) {
+ if (Opts.SjLjExceptions)
+ PersonalityFnName = "__gxx_personality_sj0";
+ else
PersonalityFnName = "__gxx_personality_v0";
- else if (Opts.ObjC1) {
+ } else if (Opts.ObjC1) {
if (Opts.NeXTRuntime) {
if (Opts.ObjCNonFragileABI)
PersonalityFnName = "__gcc_personality_v0";