diff options
| author | David Chisnall <csdavec@swan.ac.uk> | 2013-01-11 15:33:01 +0000 |
|---|---|---|
| committer | David Chisnall <csdavec@swan.ac.uk> | 2013-01-11 15:33:01 +0000 |
| commit | 2ec1b10d8e68636c967d21bbf53d1cdb323d3f89 (patch) | |
| tree | 0c192b1828c5c60cafa6fe6256c8e957a932308f /clang/lib/CodeGen/CGException.cpp | |
| parent | 7381db059a34f487a93a37f2741f3252ef923aae (diff) | |
| download | bcm5719-llvm-2ec1b10d8e68636c967d21bbf53d1cdb323d3f89.tar.gz bcm5719-llvm-2ec1b10d8e68636c967d21bbf53d1cdb323d3f89.zip | |
Enable the new (more C++-like, less broken) EH model when targeting the GNUstep
Objective-C runtime 1.7 or greater.
llvm-svn: 172207
Diffstat (limited to 'clang/lib/CodeGen/CGException.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGException.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp index 5797fd7578f..b30d820a929 100644 --- a/clang/lib/CodeGen/CGException.cpp +++ b/clang/lib/CodeGen/CGException.cpp @@ -156,6 +156,7 @@ namespace { static const EHPersonality GNU_C; static const EHPersonality GNU_C_SJLJ; static const EHPersonality GNU_ObjC; + static const EHPersonality GNUstep_ObjC; static const EHPersonality GNU_ObjCXX; static const EHPersonality NeXT_ObjC; static const EHPersonality GNU_CPlusPlus; @@ -173,6 +174,8 @@ const EHPersonality EHPersonality::GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"}; const EHPersonality EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", 0 }; +const EHPersonality +EHPersonality::GNUstep_ObjC = { "__gnustep_objc_personality_v0", 0 }; static const EHPersonality &getCPersonality(const LangOptions &L) { if (L.SjLjExceptions) @@ -188,6 +191,9 @@ static const EHPersonality &getObjCPersonality(const LangOptions &L) { case ObjCRuntime::iOS: return EHPersonality::NeXT_ObjC; case ObjCRuntime::GNUstep: + if (L.ObjCRuntime.getVersion() >= VersionTuple(1, 7)) + return EHPersonality::GNUstep_ObjC; + // fallthrough case ObjCRuntime::GCC: case ObjCRuntime::ObjFW: return EHPersonality::GNU_ObjC; |

