[LLVMbugs] [Bug 17646] New: crash during TemplateSpecializationType

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Oct 21 17:04:21 PDT 2013


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

            Bug ID: 17646
           Summary: crash during TemplateSpecializationType
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: david.majnemer at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

testcase.cpp:
template <int>
struct L {};
template <int k>
template <typename T>
void L<k>::O<T>::Fun() {}
L<0>::O<int>::Fun();

crashes with:

~/llvm/src/tools/clang/lib/AST/Type.cpp:1994:
clang::TemplateSpecializationType::TemplateSpecializationType(clang::TemplateName,
const clang::TemplateArgument*, unsigned int, clang::QualType,
clang::QualType): Assertion `(!Canon.isNull() || T.isDependent() ||
::anyDependentTemplateArguments(Args, NumArgs, InstantiationDependent)) && "No
canonical type for non-dependent class template specialization"' failed.
0  clang++         0x0000000001e0c8e7 llvm::sys::PrintStackTrace(_IO_FILE*) +
38
1  clang++         0x0000000001e0cb6e
2  clang++         0x0000000001e0c5b2
3  libpthread.so.0 0x00007f148a162cb0
4  libc.so.6       0x00007f14895b7425 gsignal + 53
5  libc.so.6       0x00007f14895bab8b abort + 379
6  libc.so.6       0x00007f14895b00ee
7  libc.so.6       0x00007f14895b0192
8  clang++         0x0000000003282aef
clang::TemplateSpecializationType::TemplateSpecializationType(clang::TemplateName,
clang::TemplateArgument const*, unsigned int, clang::QualType, clang::QualType)
+ 587
9  clang++         0x00000000030b077a
clang::ASTContext::getCanonicalTemplateSpecializationType(clang::TemplateName,
clang::TemplateArgument const*, unsigned int) const + 696
10 clang++         0x00000000030b03bb
clang::ASTContext::getTemplateSpecializationType(clang::TemplateName,
clang::TemplateArgument const*, unsigned int, clang::QualType) const + 427
11 clang++         0x00000000030b0185
clang::ASTContext::getTemplateSpecializationType(clang::TemplateName,
clang::TemplateArgumentListInfo const&, clang::QualType) const + 311
12 clang++         0x00000000025ee10a
clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation,
clang::TemplateArgumentListInfo&) + 2668
13 clang++         0x00000000022d774a
clang::Sema::ActOnCXXNestedNameSpecifier(clang::Scope*, clang::CXXScopeSpec&,
clang::SourceLocation, clang::OpaquePtr<clang::TemplateName>,
clang::SourceLocation, clang::SourceLocation,
llvm::MutableArrayRef<clang::ParsedTemplateArgument>, clang::SourceLocation,
clang::SourceLocation, bool) + 1430
14 clang++         0x0000000002256a17
clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&,
clang::OpaquePtr<clang::QualType>, bool, bool*, bool, clang::IdentifierInfo**)
+ 2659
15 clang++         0x0000000002217895
clang::Parser::TryAnnotateCXXScopeToken(bool) + 321
16 clang++         0x0000000002228c4f
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 3511
17 clang++         0x000000000221454b
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier) + 101
18 clang++         0x00000000022149e5
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) + 189
19 clang++         0x0000000002214199
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 2783
20 clang++         0x0000000002213689
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 415
21 clang++         0x000000000220fed9 clang::ParseAST(clang::Sema&, bool, bool)
+ 597
22 clang++         0x000000000210a48b clang::ASTFrontendAction::ExecuteAction()
+ 321
23 clang++         0x0000000002109fca clang::FrontendAction::Execute() + 200
24 clang++         0x00000000020e224c
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 720
25 clang++         0x0000000001e13085
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1018
26 clang++         0x0000000000cf55eb cc1_main(char const**, char const**, char
const*, void*) + 717
27 clang++         0x0000000000cefb2e main + 786
28 libc.so.6       0x00007f14895a276d __libc_start_main + 237
29 clang++         0x0000000000cee429
Stack dump:  
0.      Program arguments: ~/llvm/build/bin/clang++ -cc1 testcase.cpp
-fsyntax-only   
1.      testcase.cpp:6:15: current parser token 'Fun'
zsh: abort (core dumped)  ~/llvm/build/bin/clang++ -cc1 testcase.cpp

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131022/9879bdad/attachment.html>


More information about the llvm-bugs mailing list