Accessing synthesized ivar from cmethod in ObjC++ crashes LLVM
| Originator: | joachimb | ||
| Number: | rdar://10593227 | Date Originated: | 16-Dec-2011 05:45 PM |
| Status: | Open | Resolved: | |
| Product: | Developer Tools | Product Version: | 4.2.1 |
| Classification: | Crash | Reproducible: | Always |
16-Dec-2011 05:45 PM Joachim Bengtsson:
'IVarAccessFromClassLLVMCrash.zip' was successfully uploaded
16-Dec-2011 05:45 PM Joachim Bengtsson:
Summary:
Accessing a synthesized instance variable from a class method crashes LLVM.
Example input (also attached, and http://cl.ly/1d3N3T3E06410X2v0i43):
@interface CNAppDelegate ()
@property (nonatomic,retain) id foo;
@end
@implementation CNAppDelegate
@synthesize foo;
+(void)myClassMethod;
{
foo = [NSObject new];
}
@end
Example output:
CompileC /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.o IVarAccessFromClassLLVMCrash/CNAppDelegate.mm normal i386 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash
setenv LANG en_US.US-ASCII
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -x objective-c++ -arch i386 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -O0 -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -Wno-arc-abi -Wc++0x-extensions -DDEBUG=1 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fexceptions -fasm-blocks -mmacosx-version-min=10.6 -gdwarf-2 -fvisibility-inlines-hidden -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -iquote /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-generated-files.hmap -I/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-own-target-headers.hmap -I/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-all-target-headers.hmap -iquote /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-project-headers.hmap -I/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Products/Debug-iphonesimulator/include -I/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/DerivedSources/i386 -I/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/DerivedSources -F/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Products/Debug-iphonesimulator -include /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/PrecompiledHeaders/IVarAccessFromClassLLVMCrash-Prefix-gbunedaqhbshfnediifnyyygyxsj/IVarAccessFromClassLLVMCrash-Prefix.pch -MMD -MT dependencies -MF /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.d -c /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash/IVarAccessFromClassLLVMCrash/CNAppDelegate.mm -o /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.o
0 clang 0x0000000109c42312 _ZL15PrintStackTracePv + 34
1 clang 0x0000000109c427e9 _ZL13SignalHandleri + 633
2 libsystem_c.dylib 0x00007fff993cecfa _sigtramp + 26
3 libsystem_c.dylib 0x0000000000000277 _sigtramp + 18446603337945257367
4 clang 0x0000000108f76094 clang::ASTContext::getDeclAlign(clang::Decl const*, bool) const + 964
5 clang 0x000000010910bf53 clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(clang::DeclRefExpr const*) + 51
6 clang 0x000000010910bb6a clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*) + 250
7 clang 0x000000010910f902 clang::CodeGen::CodeGenFunction::EmitCheckedLValue(clang::Expr const*) + 34
8 clang 0x000000010949e321 clang::StmtVisitorBase<clang::make_ptr, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) + 3601
9 clang 0x0000000108f770f8 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) + 72
10 clang 0x000000010910d129 clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*, clang::CodeGen::AggValueSlot, bool) + 57
11 clang 0x000000010910f8c9 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) + 41
12 clang 0x0000000108f76722 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 194
13 clang 0x0000000108f76cdb clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) + 267
14 clang 0x0000000108f76a98 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 152
15 clang 0x0000000108f76680 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 32
16 clang 0x00000001094a54ca clang::CodeGen::CodeGenFunction::GenerateObjCMethod(clang::ObjCMethodDecl const*) + 58
17 clang 0x0000000108ecf331 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 881
18 clang 0x0000000108ecef9f (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) + 95
19 clang 0x0000000108ecef11 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 161
20 clang 0x0000000108ea2ff2 clang::ParseAST(clang::Sema&, bool) + 290
21 clang 0x0000000108ea1aaf clang::CodeGenAction::ExecuteAction() + 671
22 clang 0x0000000108e8d89b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 875
23 clang 0x0000000108e8b918 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2696
24 clang 0x0000000108e80115 cc1_main(char const**, char const**, char const*, void*) + 5333
25 clang 0x0000000108e6327b main + 667
26 clang 0x0000000108e62fd4 start + 52
27 clang 0x0000000000000060 start + 18446744069265281216
Stack dump:
0. Program arguments: /Developer/usr/bin/clang -cc1 -triple i386-apple-macosx10.6.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name CNAppDelegate.mm -pic-level 1 -mdisable-fp-elim -relaxed-aliasing -masm-verbose -target-cpu yonah -target-linker-version 127.2 -g -coverage-file /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.o -resource-dir /Developer/usr/bin/../lib/clang/3.0 -dependency-file /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.d -MT dependencies -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -iquote /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-generated-files.hmap -iquote /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-project-headers.hmap -include-pch /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/PrecompiledHeaders/IVarAccessFromClassLLVMCrash-Prefix-gbunedaqhbshfnediifnyyygyxsj/IVarAccessFromClassLLVMCrash-Prefix.pch.pth -D DEBUG=1 -D IBOutlet=__attribute__((iboutlet)) -D IBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName))) -D IBAction=void)__attribute__((ibaction) -D __IPHONE_OS_VERSION_MIN_REQUIRED=50000 -I /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-own-target-headers.hmap -I /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/IVarAccessFromClassLLVMCrash-all-target-headers.hmap -I /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Products/Debug-iphonesimulator/include -I /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/DerivedSources/i386 -I /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/DerivedSources -F/Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Products/Debug-iphonesimulator -O0 -Wno-trigraphs -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -Wno-arc-abi -Wc++0x-extensions -Wno-sign-conversion -fdeprecated-macro -ferror-limit 19 -fmessage-length 0 -fvisibility-inlines-hidden -fdiagnostics-print-source-range-info -fdiagnostics-parseable-fixits -stack-protector 1 -fblocks -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-nonfragile-abi -fobjc-exceptions -fcxx-exceptions -fexceptions -fpascal-strings -fdiagnostics-show-option -fdiagnostics-show-category id -o /Users/nevyn/Library/Developer/Xcode/DerivedData/IVarAccessFromClassLLVMCrash-aazfeggntetrdncnoevsqrxoduun/Build/Intermediates/IVarAccessFromClassLLVMCrash.build/Debug-iphonesimulator/IVarAccessFromClassLLVMCrash.build/Objects-normal/i386/CNAppDelegate.o -x objective-c++ /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash/IVarAccessFromClassLLVMCrash/CNAppDelegate.mm
1. /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash/IVarAccessFromClassLLVMCrash/CNAppDelegate.mm:23:1: current parser token '@'
2. /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash/IVarAccessFromClassLLVMCrash/CNAppDelegate.mm:19:1: LLVM IR generation of declaration 'CNAppDelegate::myClassMethod'
3. /Users/nevyn/Desktop/IVarAccessFromClassLLVMCrash/IVarAccessFromClassLLVMCrash/CNAppDelegate.mm:20:1: LLVM IR generation of compound statement ('{}')
clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal 2 (use -v to see invocation)
16-Dec-2011 05:46 PM Joachim Bengtsson:
Sorry, forgot to mention: This is only from Objective-C++.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!