On Jan 11, 2013, at 7:33 AM, David Chisnall <[email protected]> wrote: > Author: theraven > Date: Fri Jan 11 09:33:01 2013 > New Revision: 172207 > > URL: http://llvm.org/viewvc/llvm-project?rev=172207&view=rev > Log: > Enable the new (more C++-like, less broken) EH model when targeting the > GNUstep > Objective-C runtime 1.7 or greater. > > > Modified: > cfe/trunk/lib/CodeGen/CGException.cpp > cfe/trunk/lib/CodeGen/CGObjCGNU.cpp > cfe/trunk/test/CodeGenObjC/gnu-exceptions.m > > Modified: cfe/trunk/lib/CodeGen/CGException.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGException.cpp?rev=172207&r1=172206&r2=172207&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGException.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGException.cpp Fri Jan 11 09:33:01 2013 > @@ -156,6 +156,7 @@ > 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 @@ > 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 @@ > 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; > > Modified: cfe/trunk/lib/CodeGen/CGObjCGNU.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp?rev=172207&r1=172206&r2=172207&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGObjCGNU.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGObjCGNU.cpp Fri Jan 11 09:33:01 2013 > @@ -675,6 +675,8 @@ > } > public: > CGObjCGNUstep(CodeGenModule &Mod) : CGObjCGNU(Mod, 9, 3) { > + ObjCRuntime R = CGM.getLangOpts().ObjCRuntime;
Nit pick: please bind this to a reference instead of copying it out. John. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
