[LLVMbugs] [Bug 9449] New: Crash using member pointer type

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Mar 10 00:34:18 PST 2011


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

           Summary: Crash using member pointer type
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: abramobagnara at tin.it
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


$ cat p.cc

template <typename T>
struct s;


template <typename T>
void f() {
  int s<T>::template n<T>::* f;
}
$ clang++ -cc1 p.cc
clang++:
/home/abramo/llvm/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:422:
const clang::CXXRecordDecl::DefinitionData& clang::CXXRecordDecl::data() const:
Assertion `DefinitionData && "queried property of class with no definition"'
failed.
0  clang++   0x09ba1923
1  clang++   0x09ba16b0
2            0x00383400 __kernel_sigreturn + 0
3  libc.so.6 0x0013da82 abort + 386
4  libc.so.6 0x00133718 __assert_fail + 248
5  clang++   0x08c4d3e4 clang::CXXRecordDecl::data() const + 70
6  clang++   0x08c4d40d clang::CXXRecordDecl::bases_begin() const + 29
7  clang++   0x09242ed9 clang::CXXRecordDecl::forallBases(bool
(*)(clang::CXXRecordDecl const*, void*), void*, bool) const + 57
8  clang++   0x0925d92b clang::CXXRecordDecl::hasAnyDependentBases() const + 83
9  clang++   0x08f658a0 clang::Sema::ActOnDependentTemplateName(clang::Scope*,
clang::SourceLocation, clang::CXXScopeSpec&, clang::UnqualifiedId&,
clang::OpaquePtr<clang::QualType>, bool,
clang::OpaquePtr<clang::TemplateName>&) + 526
10 clang++   0x08db8c0a
clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&,
clang::OpaquePtr<clang::QualType>, bool, bool*) + 1318
11 clang++   0x08d96872 clang::Parser::TryAnnotateCXXScopeToken(bool) + 212
12 clang++   0x08d9d414
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 2682
13 clang++   0x08d9b200
clang::Parser::ParseSimpleDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, bool) +
148
14 clang++   0x08d9b131
clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 569
15 clang++   0x08d8894a
clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, bool) + 534
16 clang++   0x08d8a00a clang::Parser::ParseCompoundStatementBody(bool) + 986
17 clang++   0x08d8d9fb clang::Parser::ParseFunctionStatementBody(clang::Decl*)
+ 253
18 clang++   0x08d9539b
clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&) + 933
19 clang++   0x08dc44c3
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject&, clang::SourceLocation&,
clang::AccessSpecifier) + 1235
20 clang++   0x08dc3fb1
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier) + 1005
21 clang++   0x08dc3b59
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier) + 189
22 clang++   0x08d9af82
clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 138
23 clang++   0x08d945d3
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::Parser::ParsingDeclSpec*) + 1113
24 clang++   0x08d940d7
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 223
25 clang++   0x08d7c186 clang::ParseAST(clang::Sema&, bool) + 306
26 clang++   0x08afbd71 clang::ASTFrontendAction::ExecuteAction() + 253
27 clang++   0x08afb9cc clang::FrontendAction::Execute() + 316
28 clang++   0x08ae63cb
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 779
29 clang++   0x08a90c9f
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 835
30 clang++   0x08a83885 cc1_main(char const**, char const**, char const*,
void*) + 1014
31 clang++   0x08a8c659 main + 521
32 libc.so.6 0x00126bd6 __libc_start_main + 230
33 clang++   0x08a82f61
Stack dump:
0.    Program arguments: clang++ -cc1 p.cc 
1.    p.cc:8:23: current parser token '<'
2.    p.cc:7:10: parsing function body 'f'
3.    p.cc:7:10: in compound statement ('{}')
Aborted

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