Changelog

Diff: 57095 / 57096

57095: debug

57096: debug (annotation)

+ (gdb) frame 21 + #21 0x000000000132187e in clang::Sema::InstantiateFunctionDefinition ( + this=0x3854300, PointOfInstantiation=..., Function=0x386ee90,
- #0 0x00007ffff6ebea75 in *__GI_raise (sig=<optimized out>) - at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 - #1 0x00007ffff6ec25c0 in *__GI_abort () at abort.c:92 - #2 0x00007ffff6eb7941 in *__GI___assert_fail ( - assertion=0x299d1c5 "isa<LabelDecl>(D) && \"declaration not instantiated in this scope\"", file=<optimized out>, line=2346, - function=0x299d207 "llvm::PointerUnion<Decl *, LocalInstantiationScope::DeclArgumentPack *> *clang::LocalInstantiationScope::findInstantiationOf(const clang::Decl *)") at assert.c:81 - #3 0x00000000012e7ef7 in clang::LocalInstantiationScope::findInstantiationOf ( - this=0x7fffffffa5b0, D=0x386e5f0) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2346 - #4 0x0000000001315eaf in clang::Sema::FindInstantiatedDecl (this=0x3854300, - Loc=..., D=0x386e5f0, TemplateArgs=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3168 - #5 0x000000000131a2f7 in clang::Sema::FindInstantiatedContext ( - this=0x3854300, Loc=..., DC=0x386e628, TemplateArgs=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3127 - #6 0x00000000013162ac in clang::Sema::FindInstantiatedDecl (this=0x3854300, - Loc=..., D=0x386e890, TemplateArgs=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3245 - #7 0x00000000012eaa1f in (anonymous namespace)::TemplateInstantiator::TransformDecl (this=0x7fffffffa360, Loc=..., D=0x386e890) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:856 - #8 0x00000000012f4bc1 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformMemberExpr (this=0x7fffffffa360, E=0x386e940) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/TreeTransform.h:6264 - #9 0x00000000012e593f in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffffa360, E=0x386e940) - at /home/richardsmith/clang-2/build/tools/clang/include/clang/AST/StmtNodes.inc:459 - #10 0x00000000012f2b4e in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCStyleCastExpr (this=0x7fffffffa360, E=0x386e988) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/TreeTransform.h:6420 - #11 0x00000000012e5476 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffffa360, E=0x386e988) - at /home/richardsmith/clang-2/build/tools/clang/include/clang/AST/StmtNodes.inc:293 - #12 0x00000000012e4ab0 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt (this=0x7fffffffa360, S=0x386e988) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/TreeTransform.h:2467 - #13 0x00000000012f8c23 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt (this=0x7fffffffa360, S=0x386e9b0, - IsStmtExpr=false) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/TreeTransform.h:4977 - #14 0x00000000012ffcca in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt (this=0x7fffffffa360, S=0x386e9b0) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/TreeTransform.h:4965 - #15 0x00000000012e45c8 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt (this=0x7fffffffa360, S=0x386e9b0) - at /home/richardsmith/clang-2/build/tools/clang/include/clang/AST/StmtNodes.inc:45 - #16 0x00000000012e444c in clang::Sema::SubstStmt (this=0x3854300, S=0x386e9b0, - TemplateArgs=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2252 - #17 0x00000000013216ef in clang::Sema::InstantiateFunctionDefinition ( - this=0x3854300, PointOfInstantiation=..., Function=0x3871c50,
Recursive=true, DefinitionRequired=false)
+ at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:2616 + 2616 PerformPendingInstantiations(); + (gdb) p Function->dump() + void doIt() { + struct Functor { + void func(); + int i; + }; + forEach(Functor()); + } + + $5 = void + (gdb) frame 19
- at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:2589 - #18 0x0000000001322862 in clang::Sema::PerformPendingInstantiations ( - this=0x3854300, LocalOnly=true) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3348
#19 0x0000000001321845 in clang::Sema::InstantiateFunctionDefinition (
+ this=0x3854300, PointOfInstantiation=..., Function=0x38723b0,
- this=0x3854300, PointOfInstantiation=..., Function=0x38723b0,
Recursive=true, DefinitionRequired=false) at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:2607
+ 2607 PerformPendingInstantiations(/*LocalOnly=*/true); + (gdb) p Function->dump() + void forEach(Functor t) { + t.func(); + } + + $6 = void + (gdb) frame 17 + #17 0x00000000013216ef in clang::Sema::InstantiateFunctionDefinition ( + this=0x3854300, PointOfInstantiation=..., Function=0x3871c50,
- #20 0x0000000001322862 in clang::Sema::PerformPendingInstantiations ( - this=0x3854300, LocalOnly=false) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3348 - #21 0x000000000132187e in clang::Sema::InstantiateFunctionDefinition ( - this=0x3854300, PointOfInstantiation=..., Function=0x386ee90,
Recursive=true, DefinitionRequired=false)
+ at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:2589 + 2589 StmtResult Body = SubstStmt(Pattern, TemplateArgs); + (gdb) p Function->dump() + void func()$7 = void + (gdb)
- at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:2616 - #22 0x0000000001322862 in clang::Sema::PerformPendingInstantiations ( - this=0x3854300, LocalOnly=false) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3348 - #23 0x0000000000f82c09 in clang::Sema::ActOnEndOfTranslationUnit ( - this=0x3854300) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Sema/Sema.cpp:451 - #24 0x0000000000bd05a3 in clang::Parser::ParseTopLevelDecl (this=0x3855c30, - Result=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Parse/Parser.cpp:484 - #25 0x0000000000ba5d52 in clang::ParseAST (S=..., PrintStats=false) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Parse/ParseAST.cpp:85 - #26 0x0000000000b01518 in clang::ASTFrontendAction::ExecuteAction ( - this=0x3814bc0) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Frontend/FrontendAction.cpp:414 - #27 0x0000000000b01167 in clang::FrontendAction::Execute (this=0x3814bc0) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Frontend/FrontendAction.cpp:334 - #28 0x0000000000ada8b1 in clang::CompilerInstance::ExecuteAction ( - this=0x3813070, Act=...) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/Frontend/CompilerInstance.cpp:659 - #29 0x000000000080ed81 in clang::ExecuteCompilerInvocation (Clang=0x3813070) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:175 - #30 0x00000000008013f9 in cc1_main (ArgBegin=0x7fffffffd1e0, - ArgEnd=0x7fffffffd1f0, - Argv0=0x3812e88 "/usr/local/google/home/richardsmith/llvm-2/build/bin/clang", MainAddr=0x7f99c0) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/tools/driver/cc1_main.cpp:165 - #31 0x00000000007f9c0d in main (argc_=4, argv_=0x7fffffffdb18) - at /usr/local/google/home/richardsmith/llvm-2/src/tools/clang/tools/driver/driver.cpp:352