[LLVMbugs] [Bug 9982] New: Templated function returning an apple-block throwing assertion

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat May 21 16:25:20 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=9982

           Summary: Templated function returning an apple-block throwing
                    assertion
           Product: clang
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++0x
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: joshuacweinberg at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Created an attachment (id=6626)
 --> (http://llvm.org/bugs/attachment.cgi?id=6626)
Code that fires the assertion

Compiling the attached code throws an assertion when compiling

Assertion failed: (Stored.get<Decl *>() == Inst && "Already instantiated this
local"), function InstantiatedLocal, file
/Users/jweinberg/Development/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp,
line 2268.
0  clang             0x00000001107d48e2 _ZL15PrintStackTracePv + 34
1  clang             0x00000001107d4ee9 _ZL13SignalHandleri + 745
2  libsystem_c.dylib 0x00007fff8ee61d3a _sigtramp + 26
3  clang             0x000000010fd0c7f1 clang::DeclRefExpr::computeDependence()
+ 245
4  clang             0x00000001107d4846 abort + 22
5  clang             0x00000001107d4898 __assert_rtn + 56
6  clang             0x000000010fb24f58
clang::LocalInstantiationScope::InstantiatedLocal(clang::Decl const*,
clang::Decl*) + 120
7  clang             0x000000010fb2885f
clang::Sema::SubstParmVarDecl(clang::ParmVarDecl*,
clang::MultiLevelTemplateArgumentList const&, int, llvm::Optional<unsigned
int>) + 717
8  clang             0x000000010fb29331 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformFunctionTypeParams(clang::SourceLocation,
clang::ParmVarDecl**, unsigned int, clang::QualType const*,
llvm::SmallVectorImpl<clang::QualType>&,
llvm::SmallVectorImpl<clang::ParmVarDecl*>*) + 1615
9  clang             0x000000010fb2bf74 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 2372
10 clang             0x000000010fb3358c clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 32604
11 clang             0x000000010fb38d93 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 4769
12 clang             0x000000010fb3ba7e clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 254
13 clang             0x000000010fb2f6ba clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 16522
14 clang             0x000000010fb3358c clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 32604
15 clang             0x000000010fb2b081 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 5869
16 clang             0x000000010fb4341f clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) + 137
17 clang             0x000000010fb2a41a clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 2694
18 clang             0x000000010fb2c1fa clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 3018
19 clang             0x000000010fb3358c clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 32604
20 clang             0x000000010fb38d93 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 4769
21 clang             0x000000010fb3ba7e clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 254
22 clang             0x000000010fb2f6ba clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 16522
23 clang             0x000000010fb3358c clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) + 32604
24 clang             0x000000010fb2b081 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 5869
25 clang             0x000000010fb4341f clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) + 137
26 clang             0x000000010fb2a41a clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 2694
27 clang             0x000000010fb4358a clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&) + 60
28 clang             0x000000010fb52f14
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool) + 2478
29 clang             0x000000010fb52415
clang::Sema::PerformPendingInstantiations(bool) + 631
30 clang             0x000000010f93326c
clang::Sema::ActOnEndOfTranslationUnit() + 314
31 clang             0x000000010f91b859
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 103
32 clang             0x000000010f8dca5d clang::ParseAST(clang::Sema&, bool) +
317
33 clang             0x000000010f8bb8ec clang::CodeGenAction::ExecuteAction() +
874
34 clang             0x000000010f6f7b21
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 947
35 clang             0x000000010f6d2e87
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1863
36 clang             0x000000010f6cd31b cc1_main(char const**, char const**,
char const*, void*) + 2779
37 clang             0x000000010f6cfe70 main + 640
38 clang             0x000000010f6cc834 start + 52
Stack dump:
0.    Program arguments:
/Users/jweinberg/Development/llvm/build/Release+Asserts/bin/clang -cc1 -triple
x86_64-apple-macosx10.7.0 -emit-obj -mrelax-all -disable-free -main-file-name
main.mm -pic-level 1 -mdisable-fp-elim -masm-verbose -munwind-tables
-target-cpu core2 -target-linker-version 123.2.1 -g -coverage-file
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/Objects-normal/x86_64/main.o
-resource-dir
/Users/jweinberg/Development/llvm/build/Release+Asserts/bin/../lib/clang/3.0
-isysroot /Developer/SDKs/MacOSX10.7.sdk -iquote
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/LLVMCrash-generated-files.hmap
-iquote
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/LLVMCrash-project-headers.hmap
-include-pch
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/PrecompiledHeaders/LLVMCrash-Prefix-fzespubklratzmhatcxbelzfnyvm/LLVMCrash-Prefix.pch.pth
-D DEBUG=1 -D IBOutlet=__attribute__((iboutlet)) -D
IBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName))) -D
IBAction=void)__attribute__((ibaction) -I
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/LLVMCrash-own-target-headers.hmap
-I
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/LLVMCrash-all-target-headers.hmap
-I
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Products/Debug/include
-I
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/DerivedSources/x86_64
-I
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/DerivedSources
-F/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Products/Debug
-O0 -Wno-trigraphs -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch
-Wno-unused-parameter -Wunused-variable -Wunused-value -Wshorten-64-to-32
-std=c++0x -fdeprecated-macro -ferror-limit 19 -fmessage-length 0
-fvisibility-inlines-hidden -fdiagnostics-print-source-range-info
-fdiagnostics-parseable-fixits -stack-protector 1 -fblocks -fobjc-exceptions
-fexceptions -fobjc-nonfragile-abi -fobjc-dispatch-method=mixed
-fpascal-strings -fdiagnostics-show-option -fdiagnostics-show-category id -o
/Users/jweinberg/Library/Developer/Xcode/DerivedData/LLVMCrash-aoaiwztifpaxtjbplatutgennbqh/Build/Intermediates/LLVMCrash.build/Debug/LLVMCrash.build/Objects-normal/x86_64/main.o
-x objective-c++ /Users/jweinberg/Development/LLVMCrash/LLVMCrash/main.mm 
1.    <eof> parser at end of file
2.    /Users/jweinberg/Development/LLVMCrash/LLVMCrash/Curry.h:47:11:
instantiating function definition 'operator()'
clang: error: unable to execute command: Illegal instruction: 4
clang: error: clang frontend command failed due to signal 1 (use -v to see
invocation)
Command /Users/jweinberg/Development/llvm/build/Release+Asserts/bin/clang
failed with exit code 255

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list