On Tue, Dec 15, 2009 at 8:45 AM, Fariborz Jahanian <[email protected]> wrote: > > On Dec 14, 2009, at 6:29 PM, Daniel Dunbar wrote: > >> Hi Fariborz, >> >> Should this test go into the LLVM test-suite? > > There is an executable version of this test case attached to the radar. But > it depends on the Foundation. > Can it go into LLVM test suite? If not, I don't see added benefit of moving > this test there too?
Yes, we already have Objective-C tests in the LLVM test suite. The benefit of moving them there is that it will be executed, and the results compared to a reference build (gcc). - Daniel > - Fariborz > >> >> >> - Daniel >> >> On Mon, Dec 14, 2009 at 1:35 PM, Fariborz Jahanian <[email protected]> >> wrote: >>> >>> Author: fjahanian >>> Date: Mon Dec 14 15:35:01 2009 >>> New Revision: 91335 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=91335&view=rev >>> Log: >>> Patch to fix 32-bit @try failure with internal assertion when compiling >>> an Objective-C rethrow nested inside another try/catch block. (fixes >>> radar 7466728). >>> >>> >>> Added: >>> cfe/trunk/test/CodeGenObjC/nested-rethrow.m >>> Modified: >>> cfe/trunk/lib/CodeGen/CGObjCMac.cpp >>> >>> Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=91335&r1=91334&r2=91335&view=diff >>> >>> >>> ============================================================================== >>> --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original) >>> +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon Dec 14 15:35:01 2009 >>> @@ -2541,8 +2541,11 @@ >>> // through finally. >>> CGF.PushCleanupBlock(FinallyBlock); >>> >>> - CGF.ObjCEHValueStack.push_back(0); >>> - >>> + if (CGF.ObjCEHValueStack.empty()) >>> + CGF.ObjCEHValueStack.push_back(0); >>> + // If This is a nested @try, caught exception is that of enclosing >>> @try. >>> + else >>> + CGF.ObjCEHValueStack.push_back(CGF.ObjCEHValueStack.back()); >>> // Allocate memory for the exception data and rethrow pointer. >>> llvm::Value *ExceptionData = >>> CGF.CreateTempAlloca(ObjCTypes.ExceptionDataTy, >>> "exceptiondata.ptr"); >>> >>> Added: cfe/trunk/test/CodeGenObjC/nested-rethrow.m >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/nested-rethrow.m?rev=91335&view=auto >>> >>> >>> ============================================================================== >>> --- cfe/trunk/test/CodeGenObjC/nested-rethrow.m (added) >>> +++ cfe/trunk/test/CodeGenObjC/nested-rethrow.m Mon Dec 14 15:35:01 2009 >>> @@ -0,0 +1,24 @@ >>> +// RUN: clang -cc1 -triple i386-apple-darwin9 -emit-llvm %s -o - | >>> FileCheck %s >>> + >>> +#include <stdio.h> >>> + >>> +int main() >>> +{ >>> + �...@try { >>> + �...@throw @"foo"; >>> + } @catch (id e) { >>> + �...@try { >>> +// CHECK: call void @objc_exception_throw >>> + @throw; >>> + } @catch (id e) { >>> + if (e) { >>> + printf("caught \n"); >>> + } else { >>> + printf("caught (WRONG)\n"); >>> + } >>> + } @catch (...) { >>> + printf("caught nothing (WRONG)\n"); >>> + } >>> + } >>> +} >>> + >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>> > > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
