[LLVMbugs] [Bug 9643] New: clang crash on template template argument

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Apr 7 11:12:11 PDT 2011


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

           Summary: clang crash on template template argument
           Product: clang
           Version: 2.9
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: mitza at ociweb.com
                CC: llvmbugs at cs.uiuc.edu


#include <vector>

template<template<typename U, typename = std::allocator<U> > class container,
         typename DT>
container<DT> initializer(const DT& d)
{
  container<DT> t;
  t.insert(t.end(), d);
  return t;
}

int main(int, char *[])
{
  std::vector<int> v = initializer<std::vector>(5);
  v.clear();

  return 0;
}

0  libLLVM-2.9.so  0x00007fb0dcc5d12f
1  libLLVM-2.9.so  0x00007fb0dcc5ee7a
2  libpthread.so.0 0x00007fb0dbe168f0
3  clang           0x0000000000b6a369
clang::ASTContext::getSubstTemplateTypeParmType(clang::TemplateTypeParmType
const*, clang::QualType) const + 265
4  clang           0x00000000009ad280
5  clang           0x00000000009ae3e7
6  clang           0x00000000009a9bf5
7  clang           0x00000000009abef0
8  clang           0x00000000009ad0c2
9  clang           0x00000000009b4ba1
10 clang           0x00000000009ad382
11 clang           0x00000000009ae3e7
12 clang           0x00000000009a9bf5
13 clang           0x00000000009abef0
14 clang           0x00000000009ad0c2
15 clang           0x00000000009b6aed
16 clang           0x00000000009ad8aa
17 clang           0x00000000009b703d
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName) + 445
18 clang           0x00000000009c13df
clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*,
llvm::SmallVectorImpl<clang::ParmVarDecl*>&) + 79
19 clang           0x00000000009c7213
clang::TemplateDeclInstantiator::VisitFunctionDecl(clang::FunctionDecl*,
clang::TemplateParameterList*) + 435
20 clang           0x00000000009c3d7d clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 125
21 clang           0x000000000099508a
clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&) + 2634
22 clang           0x00000000009968e1
clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*,
clang::TemplateArgumentListInfo*, clang::Expr**, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&) + 1281
23 clang           0x0000000000909f11
clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::TemplateArgumentListInfo*, clang::Expr**,
unsigned int, clang::OverloadCandidateSet&, bool) + 337
24 clang           0x0000000000914f91
clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*,
clang::Expr**, unsigned int, clang::OverloadCandidateSet&, bool) + 481
25 clang           0x00000000009194c7
clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*,
clang::UnresolvedLookupExpr*, clang::SourceLocation, clang::Expr**, unsigned
int, clang::SourceLocation, clang::Expr*) + 199
26 clang           0x00000000008aba42 clang::Sema::ActOnCallExpr(clang::Scope*,
clang::Expr*, clang::SourceLocation, clang::ASTMultiPtr<clang::Expr*>,
clang::SourceLocation, clang::Expr*) + 1490
27 clang           0x0000000000769531
clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*,
true>) + 2481
28 clang           0x000000000076a718 clang::Parser::ParseCastExpression(bool,
bool, bool&, clang::OpaquePtr<clang::QualType>) + 200
29 clang           0x000000000076b55a clang::Parser::ParseCastExpression(bool,
bool, clang::OpaquePtr<clang::QualType>) + 42
30 clang           0x000000000076ade3 clang::Parser::ParseCastExpression(bool,
bool, bool&, clang::OpaquePtr<clang::QualType>) + 1939
31 clang           0x000000000076b55a clang::Parser::ParseCastExpression(bool,
bool, clang::OpaquePtr<clang::QualType>) + 42
32 clang           0x000000000076c1ee
clang::Parser::ParseAssignmentExpression() + 30
33 clang           0x0000000000753730
clang::Parser::ParseDeclarationAfterDeclarator(clang::Declarator&,
clang::Parser::ParsedTemplateInfo const&) + 544
34 clang           0x00000000007556c2
clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int,
bool, clang::SourceLocation*) + 786
35 clang           0x000000000075e6ab
clang::Parser::ParseSimpleDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, bool) +
635
36 clang           0x000000000075e822
clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 98
37 clang           0x0000000000742f12
clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, bool) + 194
38 clang           0x0000000000743eef
clang::Parser::ParseCompoundStatementBody(bool) + 1551
39 clang           0x00000000007445ed
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 157
40 clang           0x000000000074ea9a
clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&) + 474
41 clang           0x0000000000755e40
clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int,
bool, clang::SourceLocation*) + 2704
42 clang           0x000000000074d6a2
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AccessSpecifier) + 146
43 clang           0x000000000074dad0
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&,
clang::AccessSpecifier) + 448
44 clang           0x000000000074fc8a
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::Parser::ParsingDeclSpec*) + 1578
45 clang           0x000000000074fd5d
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 109
46 clang           0x0000000000737d6b clang::ParseAST(clang::Sema&, bool) + 139
47 clang           0x0000000000621273 clang::CodeGenAction::ExecuteAction() +
51
48 clang           0x000000000052e7ab
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 283
49 clang           0x000000000050d57c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1196
50 clang           0x00000000005053b5 cc1_main(char const**, char const**, char
const*, void*) + 709
51 clang           0x000000000050c6d4 main + 4724
52 libc.so.6       0x00007fb0db0f0c4d __libc_start_main + 253
53 clang           0x0000000000503a29
Stack dump:
0.      Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name 3709_noace.cpp -mrelocation-model static
-mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables
-target-cpu x86-64 -target-linker-version 2.20.1 -momit-leaf-frame-pointer -g
-resource-dir /usr/local/bin/../lib/clang/2.9 -O0 -ferror-limit 19
-fmessage-length 80 -fcxx-exceptions -fexceptions -fgnu-runtime
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-BiYr15.o -x c++
3709_noace.cpp
1.      3709_noace.cpp:14:50: current parser token ')'
2.      3709_noace.cpp:13:1: parsing function body 'main'
3.      3709_noace.cpp:13:1: in compound statement ('{}')
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal 1 (use -v to see
invocation)

-- 
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