[LLVMbugs] [Bug 8384] New: Assertion `Access == AS_private || Access == AS_protected' on invalid code

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Oct 15 03:23:29 PDT 2010


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

           Summary: Assertion `Access == AS_private || Access ==
                    AS_protected' on invalid code
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: chris at bubblescope.net
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


The code:

struct{template<struct aa{}template<aa

Produces the backtrack:

t.bashed.27877.cc:1:28: error: expected ';' after struct
struct{template<struct aa{}template<aa
                           ^
                           ;                                                    
t.bashed.27877.cc:1:28: error: a non-type template parameter cannot have type
'struct aa'                                                                     
t.bashed.27877.cc:1:28: warning: declaration does not declare anything
[-Wmissing-declarations]
struct{template<struct aa{}template<aa
                           ^
clang: SemaAccess.cpp:704: AccessResult HasAccess(clang::Sema&,
const<unnamed>::EffectiveContext&, const clang::CXXRecordDecl*,
clang::AccessSpecifier, const<unnamed>::AccessTarget&): Assertion `Access ==
AS_private || Access == AS_protected' failed.
0  clang           0x000000000165139f
1  clang           0x0000000001653612
2  libpthread.so.0 0x00007fe6532c98f0
3  libc.so.6       0x00007fe6525b8a75 gsignal + 53
4  libc.so.6       0x00007fe6525bc5c0 abort + 384
5  libc.so.6       0x00007fe6525b1941 __assert_fail + 241
6  clang           0x00000000008dd651
7  clang           0x00000000008ddc46
8  clang           0x00000000008de4b2
9  clang           0x00000000008deef1
10 clang           0x00000000008df3ba
clang::Sema::CheckLookupAccess(clang::LookupResult const&) + 330
11 clang           0x000000000092cbb5
clang::Sema::getTypeName(clang::IdentifierInfo&, clang::SourceLocation,
clang::Scope*, clang::CXXScopeSpec*, bool, clang::OpaquePtr<clang::QualType>) +
1013
12 clang           0x00000000008a2f13
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 3411
13 clang           0x00000000008c5f11
clang::Parser::ParseNonTypeTemplateParameter(unsigned int, unsigned int) + 497
14 clang           0x00000000008c85e7
clang::Parser::ParseTemplateParameterList(unsigned int,
llvm::SmallVectorImpl<clang::Decl*>&) + 55
15 clang           0x00000000008c887c
clang::Parser::ParseTemplateParameters(unsigned int,
llvm::SmallVectorImpl<clang::Decl*>&, clang::SourceLocation&,
clang::SourceLocation&) + 284
16 clang           0x00000000008c8afa
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier) + 410
17 clang           0x00000000008afa2f
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject*) + 2399
18 clang           0x00000000008b1c0f
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, unsigned int,
clang::Decl*) + 1599
19 clang           0x00000000008b2ad0
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool) + 2800
20 clang           0x00000000008a298c
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 1996
21 clang           0x000000000089a896
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AttributeList*, clang::AccessSpecifier) + 150
22 clang           0x000000000089ace4
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::AttributeList*,
clang::AccessSpecifier) + 372
23 clang           0x000000000089cc25
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 1333
24 clang           0x000000000089cd72
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 114
25 clang           0x00000000008854fb clang::ParseAST(clang::Sema&, bool) + 139
26 clang           0x000000000075b444 clang::CodeGenAction::ExecuteAction() +
68
27 clang           0x0000000000661165
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 357
28 clang           0x0000000000640c5c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1276
29 clang           0x0000000000638c1e cc1_main(char const**, char const**, char
const*, void*) + 622
30 clang           0x000000000063f777 main + 4087
31 libc.so.6       0x00007fe6525a3c4d __libc_start_main + 253
32 clang           0x0000000000637409
Stack dump:
0.      Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -S -disable-free -main-file-name t.bashed.27877.cc
-mrelocation-model static -mdisable-fp-elim -mconstructor-aliases
-munwind-tables -target-cpu x86-64 -target-linker-version 2.20.1 -resource-dir
/usr/local/lib/clang/2.9 -ferror-limit 19 -fmessage-length 171 -fexceptions
-fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-X5OKLG.s
-x c++ t.bashed.27877.cc 
1.      t.bashed.27877.cc:1:37: current parser token 'aa'
2.      t.bashed.27877.cc:1:1: parsing struct/union/class body
clang: error: clang frontend command failed due to signal 6 (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