Skip to content

Assertion `Access == AS_private || Access == AS_protected' failed. #36703

@vegard

Description

@vegard
Bugzilla Link 37355
Version trunk
OS Linux
CC @GabrielRavier

Extended Description

Input:

__builtin_va_listq1e31(union {typeof(struct s : s)})

Output:

$ clang++ -x c++ -c -
clang-7: /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:737: AccessResult HasAccess(clang::Sema&, const {anonymous}::EffectiveContext&, const clang::CXXRecordDecl*, clang::AccessSpecifier, const {anonymous}::AccessTarget&): Assertion `Access == AS_private || Access == AS_protected' failed.
Stack dump:
0.      Program arguments: /home/vegard/llvm-build/bin/clang-7 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name - -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -coverage-notes-file /home/vegard/creduce/-.gcno -resource-dir /home/vegard/llvm-build/lib/clang/7.0.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++ -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/x86_64-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/backward -internal-isystem /usr/local/include -internal-isystem /home/vegard/llvm-build/lib/clang/7.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/vegard/creduce -ferror-limit 19 -fmessage-length 180 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o -.o -x c++ - 
1.      <stdin>:1:50: current parser token ')'
2.      <stdin>:1:24: parsing struct/union/class body '(anonymous)'
3.      <stdin>:1:38: parsing struct/union/class body '(anonymous union)::s'
#&#8203;0 0x0000000008da8742 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/vegard/llvm/lib/Support/Unix/Signals.inc:403:0
#&#8203;1 0x0000000008d9e6f2 llvm::sys::RunSignalHandlers() /home/vegard/llvm/lib/Support/Signals.cpp:50:0
#&#8203;2 0x0000000008d9eea9 SignalHandler(int) /home/vegard/llvm/lib/Support/Unix/Signals.inc:243:0
#&#8203;3 0x00007f874042f390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#&#8203;4 0x00007f873f19a428 gsignal /build/glibc-Cl5G7W/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
#&#8203;5 0x00007f873f19c02a abort /build/glibc-Cl5G7W/glibc-2.23/stdlib/abort.c:91:0
#&#8203;6 0x00007f873f192bd7 __assert_fail_base /build/glibc-Cl5G7W/glibc-2.23/assert/assert.c:92:0
#&#8203;7 0x00007f873f192c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#&#8203;8 0x000000000f4dfa23 resolveInstanceContext /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:737:0
#&#8203;9 0x000000000f4dfa23 HasAccess(clang::Sema&, (anonymous namespace)::EffectiveContext const&, clang::CXXRecordDecl const*, clang::AccessSpecifier, (anonymous namespace)::AccessTarget const&) (.part.434.constprop.443) /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:820:0
#&#8203;10 0x000000000f4e3307 IsAccessible(clang::Sema&, (anonymous namespace)::EffectiveContext const&, (anonymous namespace)::AccessTarget&) /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:1357:0
#&#8203;11 0x000000000f4e7cd4 CheckEffectiveAccess(clang::Sema&, (anonymous namespace)::EffectiveContext const&, clang::SourceLocation, (anonymous namespace)::AccessTarget&) /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:1416:0
#&#8203;12 0x000000000f4ec3b9 CheckAccess(clang::Sema&, clang::SourceLocation, (anonymous namespace)::AccessTarget&) (.constprop.435) /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:1460:0
#&#8203;13 0x000000000f4f4749 clang::PartialDiagnostic::freeStorage() /home/vegard/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h:147:0
#&#8203;14 0x000000000f4f4749 _ZN5clang17PartialDiagnosticD4Ev /home/vegard/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h:260:0
#&#8203;15 0x000000000f4f4749 _ZN5clang4sema14AccessedEntityD4Ev /home/vegard/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h:51:0
#&#8203;16 0x000000000f4f4749 ~AccessTarget /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:149:0
#&#8203;17 0x000000000f4f4749 clang::Sema::CheckLookupAccess(clang::LookupResult const&) /home/vegard/llvm/tools/clang/lib/Sema/SemaAccess.cpp:1852:0
#&#8203;18 0x000000000f56f29c clang::LookupResult::diagnose() /home/vegard/llvm/tools/clang/include/clang/Sema/Lookup.h:687:0
#&#8203;19 0x000000000f56f29c clang::LookupResult::~LookupResult() /home/vegard/llvm/tools/clang/include/clang/Sema/Lookup.h:226:0
#&#8203;20 0x000000000f96cae0 clang::Sema::getTypeName(clang::IdentifierInfo const&, clang::SourceLocation, clang::Scope*, clang::CXXScopeSpec*, bool, bool, clang::OpaquePtr<clang::QualType>, bool, bool, bool, clang::IdentifierInfo**) /home/vegard/llvm/tools/clang/lib/Sema/SemaDecl.cpp:518:0
#&#8203;21 0x000000000ea8af70 clang::Parser::ParseBaseTypeSpecifier(clang::SourceLocation&, clang::SourceLocation&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:1181:0
#&#8203;22 0x000000000eaacf80 clang::Parser::ParseBaseSpecifier(clang::Decl*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:2077:0
#&#8203;23 0x000000000eaad847 clang::Parser::ParseBaseClause(clang::Decl*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:1999:0
#&#8203;24 0x000000000eaafe57 clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:3205:0
#&#8203;25 0x000000000eab749d clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:1915:0
#&#8203;26 0x000000000ea3e3a4 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:3675:0
#&#8203;27 0x000000000ea4363c clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&, clang::AccessSpecifier, clang::Parser::DeclSpecContext) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:2392:0
#&#8203;28 0x000000000eaded65 clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&, bool, bool, clang::OpaquePtr<clang::QualType>&, clang::SourceLocation&) /home/vegard/llvm/tools/clang/lib/Parse/ParseExpr.cpp:2385:0
#&#8203;29 0x000000000eae258c clang::Parser::ParseExprAfterUnaryExprOrTypeTrait(clang::Token const&, bool&, clang::OpaquePtr<clang::QualType>&, clang::SourceRange&) /home/vegard/llvm/tools/clang/lib/Parse/ParseExpr.cpp:1864:0
#&#8203;30 0x000000000ea1537d clang::Sema::CorrectDelayedTyposInExpr(clang::ActionResult<clang::Expr*, true>, clang::VarDecl*, llvm::function_ref<clang::ActionResult<clang::Expr*, true> (clang::Expr*)>) /home/vegard/llvm/tools/clang/include/clang/Sema/Sema.h:3260:0
#&#8203;31 0x000000000ea1537d clang::Parser::ParseTypeofSpecifier(clang::DeclSpec&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6744:0
#&#8203;32 0x000000000ea3bc1f clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:3714:0
#&#8203;33 0x000000000ea9d5c9 clang::ColonProtectionRAIIObject::restore() /home/vegard/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h:283:0
#&#8203;34 0x000000000ea9d5c9 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:2569:0
#&#8203;35 0x000000000eaa7810 clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::Parser::ParsedAttributesWithRange&, clang::TypeSpecifierType, clang::Decl*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:3095:0
#&#8203;36 0x000000000eaaf2e4 clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:3270:0
#&#8203;37 0x000000000eab749d clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp:1915:0
#&#8203;38 0x000000000ea3e3a4 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:3675:0
#&#8203;39 0x000000000ea61c88 clang::Parser::ParseParameterDeclarationClause(clang::Declarator&, clang::ParsedAttributes&, llvm::SmallVectorImpl<clang::DeclaratorChunk::ParamInfo>&, clang::SourceLocation&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6384:0
#&#8203;40 0x000000000ea6a80a clang::Parser::ParseFunctionDeclarator(clang::Declarator&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&, bool, bool) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6067:0
#&#8203;41 0x000000000ea6f22f clang::Parser::ParseScope::Exit() /home/vegard/llvm/tools/clang/include/clang/Parse/Parser.h:881:0
#&#8203;42 0x000000000ea6f22f clang::Parser::ParseDirectDeclarator(clang::Declarator&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:5806:0
#&#8203;43 0x000000000ea4f1b9 clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void (clang::Parser::*)(clang::Declarator&)) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:5357:0
#&#8203;44 0x000000000ea4fe7a clang::Parser::ParseDeclarator(clang::Declarator&) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:5227:0
#&#8203;45 0x000000000ea562a6 clang::Declarator::hasName() const /home/vegard/llvm/tools/clang/include/clang/Sema/DeclSpec.h:2110:0
#&#8203;46 0x000000000ea562a6 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/vegard/llvm/tools/clang/lib/Parse/ParseDecl.cpp:1932:0
#&#8203;47 0x000000000e9cc22e clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:1012:0
#&#8203;48 0x000000000e9cdd91 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.168.constprop.192) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:1028:0
#&#8203;49 0x000000000e9cded7 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:1030:0
#&#8203;50 0x000000000e9dff74 clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:853:0
#&#8203;51 0x000000000e9e3529 _ZN5clang13AttributePoolD4Ev /home/vegard/llvm/tools/clang/include/clang/Sema/AttributeList.h:642:0
#&#8203;52 0x000000000e9e3529 _ZN5clang16ParsedAttributesD4Ev /home/vegard/llvm/tools/clang/include/clang/Sema/AttributeList.h:755:0
#&#8203;53 0x000000000e9e3529 _ZN5clang6Parser25ParsedAttributesWithRangeD4Ev /home/vegard/llvm/tools/clang/include/clang/Parse/Parser.h:1308:0
#&#8203;54 0x000000000e9e3529 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:606:0
#&#8203;55 0x000000000e9e4e78 clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) /home/vegard/llvm/tools/clang/lib/Parse/Parser.cpp:536:0
#&#8203;56 0x000000000e9baa78 clang::ParseAST(clang::Sema&, bool, bool) /home/vegard/llvm/tools/clang/lib/Parse/ParseAST.cpp:151:0
#&#8203;57 0x000000000c01df2c clang::CodeGenAction::ExecuteAction() /home/vegard/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:1044:0
#&#8203;58 0x000000000aecb7d6 clang::FrontendAction::Execute() /home/vegard/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:904:0
#&#8203;59 0x000000000ad5d2c8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/vegard/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:990:0
#&#8203;60 0x000000000b2dc498 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/vegard/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:256:0
#&#8203;61 0x0000000000e993f8 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/vegard/llvm/tools/clang/tools/driver/cc1_main.cpp:222:0
#&#8203;62 0x0000000000de2539 ExecuteCC1Tool /home/vegard/llvm/tools/clang/tools/driver/driver.cpp:310:0
#&#8203;63 0x0000000000de2539 main /home/vegard/llvm/tools/clang/tools/driver/driver.cpp:382:0
#&#8203;64 0x00007f873f185830 __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/../csu/libc-start.c:325:0
#&#8203;65 0x0000000000e7e1f9 _start (/home/vegard/llvm-build/bin/clang-7+0xe7e1f9)
clang-7: error: unable to execute command: Aborted
clang-7: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 7.0.0 (https://github.com/llvm-mirror/clang fd84b47426fa82c78ca25ba20cf37fc9b0f42586) (https://github.com/llvm-mirror/llvm e1b4442d3ffc378f4a48dd0bfeb2b0876b116e2f)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/vegard/llvm-build/bin

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillaclang:frontendLanguage frontend issues, e.g. anything involving "Sema"confirmedVerified by a second partycrashPrefer [crash-on-valid] or [crash-on-invalid]

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions