aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGException.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2017-04-01 17:59:01 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2017-04-01 17:59:01 +0000
commit9851cb76e20d35a52aa4e0c9dc73d9894e2426f9 (patch)
treeec38718df935425a63c5b6e3adbf5aebec060644 /clang/lib/CodeGen/CGException.cpp
parent5e94bb00b3763a2a0bd03582b50a2c6eb5824941 (diff)
downloadllvm-9851cb76e20d35a52aa4e0c9dc73d9894e2426f9.zip
llvm-9851cb76e20d35a52aa4e0c9dc73d9894e2426f9.tar.gz
llvm-9851cb76e20d35a52aa4e0c9dc73d9894e2426f9.tar.bz2
[ObjC++] Use the correct EH personality in GNU mode
Previously, it would just always use the ObjC DWARF personality, even with SjLj or SEH exceptions. Patch by Jonathan Schleifer, test case by me. llvm-svn: 299306
Diffstat (limited to 'clang/lib/CodeGen/CGException.cpp')
-rw-r--r--clang/lib/CodeGen/CGException.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp
index 228efec..ca15351 100644
--- a/clang/lib/CodeGen/CGException.cpp
+++ b/clang/lib/CodeGen/CGException.cpp
@@ -180,8 +180,8 @@ static const EHPersonality &getObjCXXPersonality(const llvm::Triple &T,
// The GCC runtime's personality function inherently doesn't support
// mixed EH. Use the C++ personality just to avoid returning null.
case ObjCRuntime::GCC:
- case ObjCRuntime::ObjFW: // XXX: this will change soon
- return EHPersonality::GNU_ObjC;
+ case ObjCRuntime::ObjFW:
+ return getObjCPersonality(T, L);
case ObjCRuntime::GNUstep:
return EHPersonality::GNU_ObjCXX;
}