[cfe-commits] r69165 - in /cfe/trunk: lib/Sema/SemaDecl.cpp test/SemaObjC/scope-check-try-catch.m

Fariborz Jahanian fjahanian at apple.com
Wed Apr 15 10:03:22 PDT 2009


On Apr 15, 2009, at 9:59 AM, steve naroff wrote:

> I'm not seeing any crashes like this.
>
> I also don't see how the stack trace below could be related to a  
> Sema check (i.e. it doesn't mutate the AST and shouldn't effect code  
> gen in any way).
>
> Nevertheless, I will revert it since I'm working on it anyway...

Thanks. That was just a wild guess, plus the fact the ELi's little  
test case caused the same crash.

- fariborz

>
>
> snaroff
>
> On Apr 15, 2009, at 12:51 PM, Fariborz Jahanian wrote:
>
>> I am seeing lots of crashes like this:
>>
>> build/Objects-normal/x86_64/IBViewEditorWindowController.o
>> Assertion failed: (0 < OldLabelID && OldLabelID <=  
>> LabelIDList.size() && "Old label ID out of range."), function  
>> RemapLabel, file /Volumes/sandbox/llvm/include/llvm/CodeGen/ 
>> MachineModuleInfo.h, line 189.
>> 0   clang-cc          0x00d943d3 _ZL15PrintStackTracePv + 45
>> 1   clang-cc          0x00d94945 _ZL13SignalHandleri + 351
>> 2   libSystem.B.dylib 0x9107eadb _sigtramp + 43
>> 3   libSystem.B.dylib 0xffffffff _sigtramp + 1861752143
>> 4   libSystem.B.dylib 0x910f9a33 raise + 26
>> 5   libSystem.B.dylib 0x9110daab abort + 93
>> 6   libSystem.B.dylib 0x910fbb6a __assert_rtn + 252
>> 7   clang-cc          0x00aa2e80  
>> llvm::MachineModuleInfo::RemapLabel(unsigned int, unsigned int) + 98
>> 8   clang-cc          0x00aa16f4  
>> llvm 
>> ::DebugLabelFolder::runOnMachineFunction(llvm::MachineFunction&) +  
>> 304
>> 9   clang-cc          0x00a89752  
>> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 64
>> 10  clang-cc          0x00d1f3d6  
>> llvm::FPPassManager::runOnFunction(llvm::Function&) + 288
>> 11  clang-cc          0x00d1f8f8  
>> llvm::FunctionPassManagerImpl::run(llvm::Function&) + 112
>> 12  clang-cc          0x00d1fac8  
>> llvm::FunctionPassManager::run(llvm::Function&) + 156
>> 13  clang-cc          0x0003ee92 (anonymous  
>> namespace)::BackendConsumer::EmitAssembly() + 812
>> 14  clang-cc          0x0003ef83 (anonymous  
>> namespace 
>> )::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 151
>> 15  clang-cc          0x001b981f  
>> clang::ParseAST(clang::Preprocessor&, clang::ASTConsumer*,  
>> clang::ASTContext&, bool, bool) + 463
>> 16  clang-cc          0x0007c998  
>> _ZL16ProcessInputFileRN5clang12PreprocessorERNS_19PreprocessorFactoryERKSs11ProgActions 
>>  + 3027
>> 17  clang-cc          0x0008043c main + 2334
>> 18  clang-cc          0x0002ea69 start + 53
>> Stack dump:
>>
>> Can we remove this patch, if it is causing it?
>>
>> - Thanks, Fariborz
>>
>> On Apr 15, 2009, at 9:45 AM, steve naroff wrote:
>>
>>>
>>> On Apr 15, 2009, at 12:08 PM, Eli Friedman wrote:
>>>
>>>> On Wed, Apr 15, 2009 at 7:38 AM, Steve Naroff <snaroff at apple.com>
>>>> wrote:
>>>>> Author: snaroff
>>>>> Date: Wed Apr 15 09:38:36 2009
>>>>> New Revision: 69165
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=69165&view=rev
>>>>> Log:
>>>>> Fix <rdar://problem/6791490> [clang10 regression] [sema] invalid
>>>>> illegal jump diagnostic.
>>>>>
>>>>> caused by: <rdar://problem/6252084> [sema] jumps into Obj-C
>>>>> exception blocks should be disallowed.
>>>>
>>>> Ah, hmm, I figured there was a problem like this; I didn't reply
>>>> earlier because I didn't get a chance to test.
>>>>
>>>>> Sema::RecursiveCalcLabelScopes() and
>>>>> Sema::RecursiveCalcJumpScopes() need to pop the ScopeStack within
>>>>> the statement iteration loop (was outside the loop).
>>>>
>>>> That looks very wrong... if I'm not mistaken, the following  
>>>> testcase
>>>> breaks.
>>>>
>>>> int test4(int x) {
>>>> goto L; // expected-error{{illegal jump}}
>>>> int a[x];
>>>> test4(x);
>>>> L:
>>>> return sizeof a;
>>>> }
>>>>
>>>> The correct solution is to use the correct parent in the  
>>>> PopScopeMap,
>>>> which for an @try is either the @try itself or the containing
>>>> ObjCAtTryStmt.
>>>>
>>>
>>> O.k. I'll take a look. I'll also add the test case above (which  
>>> would
>>> have been helpful).
>>>
>>> Thanks,
>>>
>>> snaroff
>>>
>>>> -Eli
>>>
>>> _______________________________________________
>>> 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