[LLVMbugs] [Bug 18246] New: Crash on invalid during template function instantiation
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Dec 13 19:05:46 PST 2013
http://llvm.org/bugs/show_bug.cgi?id=18246
Bug ID: 18246
Summary: Crash on invalid during template function
instantiation
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Frontend
Assignee: unassignedclangbugs at nondot.org
Reporter: rtrieu at google.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
test.cc:
template <typename T>
class Baz {
public:
template <unsigned N>
void bar();
};
template <typename T>
template <unsigned N>
void Baz<T>::bar() {
}
template <typename T>
void Baz<T>::bar<0>() {
}
Affects:
3.1, 3.2, 3.3, 3.4 candidate, ToT
Commandline:
clang -cc1 test.cc
Output:
test.cc:14:14: error: template specialization requires 'template<>'
void Baz<T>::bar<0>() {
^ ~~~
template<>
clang: llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1473:
clang::QualType
{anonymous}::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&,
clang::TemplateTypeParmTypeLoc): Assertion `Arg.getKind() ==
TemplateArgument::Type && "Template argument kind mismatch"' failed.
0 clang 0x0000000001e8c55f llvm::sys::PrintStackTrace(_IO_FILE*) +
38
1 clang 0x0000000001e8c7e6
2 clang 0x0000000001e8c22a
3 libpthread.so.0 0x00007f6f39c5ecb0
4 libc.so.6 0x00007f6f390b3425 gsignal + 53
5 libc.so.6 0x00007f6f390b6b8b abort + 379
6 libc.so.6 0x00007f6f390ac0ee
7 libc.so.6 0x00007f6f390ac192
8 clang 0x0000000002f317d9
9 clang 0x0000000002f39ba8
10 clang 0x0000000002f38d3d
11 clang 0x0000000002f5b6a2
12 clang 0x0000000002f5c9c3
13 clang 0x0000000002f54f26
14 clang 0x0000000002f5a9d8
15 clang 0x0000000002f539a2
16 clang 0x0000000002f3d8d9
17 clang 0x0000000002f35cf3
clang::Sema::SubstNestedNameSpecifierLoc(clang::NestedNameSpecifierLoc,
clang::MultiLevelTemplateArgumentList const&) + 207
18 clang 0x0000000002f6e220
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) + 944
19 clang 0x0000000002f71a18
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*) + 42
20 clang 0x0000000002f60955
21 clang 0x0000000002f721ee clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 142
22 clang 0x0000000002ef888b
clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*) + 2395
23 clang 0x0000000002efae9a
clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*,
clang::TemplateArgumentListInfo*, clang::QualType, clang::FunctionDecl*&,
clang::sema::TemplateDeductionInfo&, bool) + 902
24 clang 0x0000000002e95368
clang::Sema::CheckFunctionTemplateSpecialization(clang::FunctionDecl*,
clang::TemplateArgumentListInfo*, clang::LookupResult&) + 744
25 clang 0x0000000002c0efe5
clang::Sema::ActOnFunctionDeclarator(clang::Scope*, clang::Declarator&,
clang::DeclContext*, clang::TypeSourceInfo*, clang::LookupResult&,
llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&) + 10241
26 clang 0x0000000002c0438e
clang::Sema::HandleDeclarator(clang::Scope*, clang::Declarator&,
llvm::MutableArrayRef<clang::TemplateParameterList*>) + 2868
27 clang 0x0000000002e94905
clang::Sema::ActOnStartOfFunctionTemplateDef(clang::Scope*,
llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Declarator&) + 159
28 clang 0x00000000029b06fd
clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) +
2271
29 clang 0x0000000002a2036e
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 1990
30 clang 0x0000000002a1fb44
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 1084
31 clang 0x0000000002a1f6ee
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 214
32 clang 0x00000000029c0bbf
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 239
33 clang 0x00000000029aefac
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 1680
34 clang 0x00000000029ae8ec
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 550
35 clang 0x00000000029ab01d clang::ParseAST(clang::Sema&, bool, bool)
+ 597
36 clang 0x0000000001f58bd3 clang::ASTFrontendAction::ExecuteAction()
+ 321
37 clang 0x0000000001f58712 clang::FrontendAction::Execute() + 200
38 clang 0x0000000001f2b27c
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 720
39 clang 0x000000000202d076
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1018
40 clang 0x0000000000d11db3 cc1_main(char const**, char const**, char
const*, void*) + 717
41 clang 0x0000000000d0c2de main + 786
42 libc.so.6 0x00007f6f3909e76d __libc_start_main + 237
43 clang 0x0000000000d0abd9
Stack dump:
0. Program arguments: clang -cc1 test.cc
1. test.cc:14:23: current parser token '{'
Aborted (core dumped)
--
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/20131214/71e00d06/attachment.html>
More information about the llvm-bugs
mailing list