[cfe-commits] r91335 - in /cfe/trunk: lib/CodeGen/CGObjCMac.cpp test/CodeGenObjC/nested-rethrow.m
Fariborz Jahanian
fjahanian at apple.com
Tue Dec 15 08:45:53 PST 2009
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?
- Fariborz
>
>
> - Daniel
>
> On Mon, Dec 14, 2009 at 1:35 PM, Fariborz Jahanian <fjahanian at apple.com
> > 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
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
More information about the cfe-commits
mailing list