[LLVMbugs] [Bug 9068] New: clang++ crash after instantiation failure in dependently-typed non-type template parameter

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Jan 27 07:14:42 PST 2011


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

           Summary: clang++ crash after instantiation failure in
                    dependently-typed non-type template parameter
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: richard-llvm at metafoo.co.uk
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


$ echo 'template<typename T, T a> struct s {}; int main() { s<double,0.0>(); }'
| clang++ -xc++ -
<stdin>:1:24: error: a non-type template parameter cannot have type 'double'
template<typename T, T a> struct s {}; int main() { s<double,0.0>(); }
                       ^
<stdin>:1:53: note: while substituting prior template arguments into non-type
template parameter 'a' [with T = double]                                        
template<typename T, T a> struct s {}; int main() { s<double,0.0>(); }
                                                    ^~~~~~~~~~~~~

clang: llvm/src/tools/clang/lib/Sema/DeclSpec.cpp:298: bool
clang::DeclSpec::SetTypeSpecType(clang::TypeSpecifierType,
clang::SourceLocation, const char*&, unsigned int&, clang::ParsedType):
Assertion `Rep && "no type provided!"' failed.
0  libLLVM-2.9svn.so 0x00007feaa539f2af
1  libLLVM-2.9svn.so 0x00007feaa53a1522
2  libpthread.so.0   0x00007feaa449c8f0
3  libc.so.6         0x00007feaa378ba75 gsignal + 53
4  libc.so.6         0x00007feaa378f5c0 abort + 384
5  libc.so.6         0x00007feaa3784941 __assert_fail + 241
6  clang             0x00000000007c40e0
clang::DeclSpec::SetTypeSpecType(clang::TypeSpecifierType,
clang::SourceLocation, char const*&, unsigned int&,
clang::OpaquePtr<clang::QualType>) + 144
7  clang             0x00000000007ae6d9
clang::Parser::ParseCXXSimpleTypeSpecifier(clang::DeclSpec&) + 921
8  clang             0x00000000007a7485
clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::OpaquePtr<clang::QualType>) + 261
9  clang             0x00000000007a847a
clang::Parser::ParseCastExpression(bool, bool,
clang::OpaquePtr<clang::QualType>) + 42
10 clang             0x00000000007a926e
clang::Parser::ParseAssignmentExpression() + 30
11 clang             0x00000000007a9749 clang::Parser::ParseExpression() + 9
12 clang             0x000000000078304a
clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, bool) + 442
13 clang             0x0000000000783b24
clang::Parser::ParseCompoundStatementBody(bool) + 404
14 clang             0x0000000000784166
clang::Parser::ParseFunctionStatementBody(clang::Decl*) + 118
15 clang             0x000000000078dd56
clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&) + 678
16 clang             0x0000000000794a09
clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int,
bool, clang::SourceLocation*) + 1497
17 clang             0x000000000078ca09
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AttributeList*, clang::AccessSpecifier) + 201
18 clang             0x000000000078cde4
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::AttributeList*,
clang::AccessSpecifier) + 372
19 clang             0x000000000078eee5
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 1493
20 clang             0x000000000078f152
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 114
21 clang             0x0000000000776beb clang::ParseAST(clang::Sema&, bool) +
139
22 clang             0x000000000064b0c4 clang::CodeGenAction::ExecuteAction() +
68
23 clang             0x00000000005420b5
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 357
24 clang             0x000000000052032c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1276
25 clang             0x0000000000517e55 cc1_main(char const**, char const**,
char const*, void*) + 693
26 clang             0x000000000051f377 main + 4599
27 libc.so.6         0x00007feaa3776c4d __libc_start_main + 253
28 clang             0x0000000000516569

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