[LLVMbugs] [Bug 8756] New: Assert while parsing 'using' declaration

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Dec 7 20:40:37 PST 2010


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

           Summary: Assert while parsing 'using' declaration
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: matthewbg at google.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Test case attached. In an opt build, this manifests as a segfault.

$ ./Debug+Asserts/bin/clang -fsyntax-only /tmp/crasher.cc
clang:
/home/matthewbg/llvm/trunk/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:397:
const clang::CXXRecordDecl::DefinitionData& clang::CXXRecordDecl::data() const:
Assertion `DefinitionData && "queried property of class with no definition"'
failed.
0  clang           0x000000000224e455
1  clang           0x000000000224e248
2  libpthread.so.0 0x00007febdef208f0
3  libc.so.6       0x00007febde20fa75 gsignal + 53
4  libc.so.6       0x00007febde2135c0 abort + 384
5  libc.so.6       0x00007febde208941 __assert_fail + 241
6  clang           0x00000000010bf5b4 clang::CXXRecordDecl::data() const + 56
7  clang           0x00000000010bf5d6 clang::CXXRecordDecl::bases_begin() const
+ 24
8  clang           0x0000000001668349 clang::CXXRecordDecl::forallBases(bool
(*)(clang::CXXRecordDecl const*, void*), void*, bool) const + 83
9  clang           0x00000000012f2e53
10 clang           0x00000000012f3266
clang::Sema::CheckUsingDeclQualifier(clang::SourceLocation, clang::CXXScopeSpec
const&, clang::SourceLocation) + 906
11 clang           0x00000000012f24a0
clang::Sema::BuildUsingDeclaration(clang::Scope*, clang::AccessSpecifier,
clang::SourceLocation, clang::CXXScopeSpec&, clang::DeclarationNameInfo const&,
clang::AttributeList*, bool, bool, clang::SourceLocation) + 790
12 clang           0x00000000012f16b3
clang::Sema::ActOnUsingDeclaration(clang::Scope*, clang::AccessSpecifier, bool,
clang::SourceLocation, clang::CXXScopeSpec&, clang::UnqualifiedId&,
clang::AttributeList*, bool, clang::SourceLocation) + 953
13 clang           0x0000000001230ed8
clang::Parser::ParseUsingDeclaration(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::SourceLocation,
clang::SourceLocation&, clang::AccessSpecifier) + 798
14 clang           0x0000000001234114
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject*) + 1626
15 clang           0x0000000001235207
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, unsigned int,
clang::Decl*) + 1371
16 clang           0x00000000012331cd
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool) + 5895
17 clang           0x0000000001226763
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 5685
18 clang           0x000000000121d187
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AttributeList*, clang::AccessSpecifier) + 135
19 clang           0x000000000121d58d
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::AttributeList*,
clang::AccessSpecifier) + 95
20 clang           0x000000000121ceee
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 2296
21 clang           0x000000000122fdca clang::Parser::ParseNamespace(unsigned
int, clang::SourceLocation&, clang::SourceLocation) + 1642
22 clang           0x0000000001223642
clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&, clang::CXX0XAttributeList) + 680
23 clang           0x000000000121cb0f
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 1305
24 clang           0x000000000121c567
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 343
25 clang           0x0000000001206144 clang::ParseAST(clang::Sema&, bool) + 328
26 clang           0x0000000000f6ae29 clang::ASTFrontendAction::ExecuteAction()
+ 263
27 clang           0x0000000000f6aa7a clang::FrontendAction::Execute() + 320
28 clang           0x0000000000f538f1
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 751
29 clang           0x0000000000f04f99
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 854
30 clang           0x0000000000ef80e9 cc1_main(char const**, char const**, char
const*, void*) + 1032
31 clang           0x0000000000f01099 main + 499
32 libc.so.6       0x00007febde1fac4d __libc_start_main + 253
33 clang           0x0000000000ef7759
Stack dump:
0.    Program arguments: /home/matthewbg/llvm/trunk/Debug+Asserts/bin/clang
-cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free
-main-file-name crasher.cc -mrelocation-model static -mdisable-fp-elim
-masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
-target-linker-version 2.20.1 -resource-dir
/home/matthewbg/llvm/trunk/Debug+Asserts/bin/../lib/clang/2.9 -ferror-limit 19
-fmessage-length 80 -fexceptions -fgnu-runtime -fdiagnostics-show-option
-fcolor-diagnostics -x c++ /tmp/crasher.cc 
1.    /tmp/crasher.cc:7:3: current parser token '}'
2.    /tmp/crasher.cc:1:1: parsing namespace 'foo'
3.    /tmp/crasher.cc:4:3: parsing struct/union/class body 'Class2'

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