llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.96k stars 11.94k forks source link

Clang crash in clang/include/clang/AST/TypeLoc.h:2299 Assertion `QualifierLoc.getNestedNameSpecifier() == getTypePtr()->getQualifier() && "Inconsistent nested-name-specifier pointer"' failed #45913

Open haoxintu opened 4 years ago

haoxintu commented 4 years ago
Bugzilla Link 46568
Version trunk
OS Linux
CC @zygoloid

Extended Description

Hi, there.

This case, bug.cc, reduced by C-Reduce, makes clang-trunk crashed.

$cat bug.cc

bool g_volatile_bool; a < b < 
struct decltype((l_volatile_long = throw))::template c<>

$clang++ bug.cc bug.cc:2:18: error: use of undeclared identifier 'l_volatile_long'; did you mean 'g_volatile_bool'? struct decltype((l_volatile_long = throw))::template c<> ^~~~~~~ g_volatile_bool bug.cc:1:6: note: 'g_volatile_bool' declared here bool g_volatile_bool; a < b < ^ bug.cc:2:36: error: assigning to 'bool' from incompatible type 'void' struct decltype((l_volatile_long = throw))::template c<> ^~~~~ bug.cc:2:57: error: expected '>' struct decltype((l_volatile_long = throw))::template c<> ^ bug.cc:1:29: note: to match this '<' bool g_volatile_bool; a < b < ^ bug.cc:1:23: error: no template named 'a' bool g_volatile_bool; a < b < ^ bug.cc:2:36: error: assigning to 'bool' from incompatible type 'void' struct decltype((l_volatile_long = throw))::template c<> ^~~~~ clang-11: /home/haoxin/compilers/llvm-project/clang/include/clang/AST/TypeLoc.h:2299: void clang::DependentTemplateSpecializationTypeLoc::setQualifierLoc(clang::NestedNameSpecifierLoc): Assertion `QualifierLoc.getNestedNameSpecifier() == getTypePtr()->getQualifier() && "Inconsistent nested-name-specifier pointer"' failed. PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump:

  1. Program arguments: /home/haoxin/compilers/llvm-project/build/bin/clang-11 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name bug.cc -mrelocation-model static -mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /home/haoxin/compilers/llvm-project/build/lib/clang/11.0.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/local/include -internal-isystem /home/haoxin/compilers/llvm-project/build/lib/clang/11.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/haoxin/bitbucket/scg-backup-bitbucket/ice-test/0703-test/2/test_0/clang-creduce -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -o /tmp/bug-098482.o -x c++ bug.cc
  2. parser at end of file #​0 0x00000000026f36c4 PrintStackTraceSignalHandler(void*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x26f36c4) #​1 0x00000000026f12be llvm::sys::RunSignalHandlers() (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x26f12be) #​2 0x00000000026f39e5 SignalHandler(int) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x26f39e5) #​3 0x00007f25dfd59890 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12890) #​4 0x00007f25de7b7e97 raise /build/glibc-OTsEL5/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0 #​5 0x00007f25de7b9801 abort /build/glibc-OTsEL5/glibc-2.27/stdlib/abort.c:81:0 #​6 0x00007f25de7a939a __assert_fail_base /build/glibc-OTsEL5/glibc-2.27/assert/assert.c:89:0 #​7 0x00007f25de7a9412 (/lib/x86_64-linux-gnu/libc.so.6+0x30412) #​8 0x00000000045119e4 clang::Sema::ActOnTagTemplateIdType(clang::Sema::TagUseKind, clang::TypeSpecifierType, clang::SourceLocation, clang::CXXScopeSpec&, clang::SourceLocation, clang::OpaquePtr, clang::SourceLocation, clang::SourceLocation, llvm::MutableArrayRef, clang::SourceLocation) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x45119e4) #​9 0x0000000003e26a77 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3e26a77) #​10 0x0000000003e066d3 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3e066d3) #​11 0x0000000003dfcb7b clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&, clang::AccessSpecifier, clang::Parser::DeclSpecContext) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3dfcb7b) #​12 0x0000000003dfc82a clang::Parser::ParseTypeName(clang::SourceRange*, clang::DeclaratorContext, clang::AccessSpecifier, clang::Decl**, clang::ParsedAttributes*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3dfc82a) #​13 0x0000000003ea290b clang::Parser::ParseTemplateArgument() (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea290b) #​14 0x0000000003ea24fb clang::Parser::ParseTemplateArgumentList(llvm::SmallVector&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea24fb) #​15 0x0000000003ea23f0 clang::Parser::ParseTemplateIdAfterTemplateName(bool, clang::SourceLocation&, llvm::SmallVector&, clang::SourceLocation&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea23f0) #​16 0x0000000003ea0cc7 clang::Parser::AnnotateTemplateIdToken(clang::OpaquePtr, clang::TemplateNameKind, clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea0cc7) #​17 0x0000000003e471e3 clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr, bool, bool, bool*, bool, clang::IdentifierInfo**, bool, bool) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3e471e3) #​18 0x0000000003df41a2 clang::Parser::TryAnnotateTypeOrScopeToken() (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3df41a2) #​19 0x0000000003ea45ac clang::Parser::isCXXDeclarationSpecifier(clang::Parser::TPResult, bool*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea45ac) #​20 0x0000000003ea6793 clang::Parser::isCXXTypeId(clang::Parser::TentativeCXXTypeIdContext, bool&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea6793) #​21 0x0000000003ea28ea clang::Parser::ParseTemplateArgument() (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea28ea) #​22 0x0000000003ea24fb clang::Parser::ParseTemplateArgumentList(llvm::SmallVector&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea24fb) bool g_volatile_bool; a < b < #​23 0x0000000003ea23f0 clang::Parser::ParseTemplateIdAfterTemplateName(bool, clang::SourceLocation&, llvm::SmallVector&, clang::SourceLocation&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3ea23f0) #​24 0x0000000003e0e689 clang::Parser::ParseImplicitInt(clang::DeclSpec&, clang::CXXScopeSpec*, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3e0e689) #​25 0x0000000003e08afa clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3e08afa) #​26 0x0000000003def66a clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3def66a) #​27 0x0000000003def395 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3def395) #​28 0x0000000003dee1bf clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3dee1bf) #​29 0x0000000003dec28d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr&, bool) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3dec28d) #​30 0x0000000003de770d clang::ParseAST(clang::Sema&, bool, bool) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x3de770d) #​31 0x0000000002ebc3f3 clang::FrontendAction::Execute() (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x2ebc3f3) #​32 0x0000000002e539c3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x2e539c3) #​33 0x0000000002f67532 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x2f67532) #​34 0x000000000095d060 cc1_main(llvm::ArrayRef, char const*, void*) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x95d060) #​35 0x000000000095b12c ExecuteCC1Tool(llvm::SmallVectorImpl&) (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x95b12c) #​36 0x000000000095addf main (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x95addf) #​37 0x00007f25de79ab97 __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:344:0 #​38 0x0000000000957eba _start (/home/haoxin/compilers/llvm-project/build/bin/clang-11+0x957eba) clang-11: error: unable to execute command: Aborted (core dumped) clang-11: error: clang frontend command failed due to signal (use -v to see invocation) clang version 11.0.0 (https://github.com/llvm/llvm-project b9306fd042ce1c11d84f05d2124dfdc65b8331fe) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/haoxin/compilers/llvm-project/build/bin clang-11: note: diagnostic msg: ********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang-11: note: diagnostic msg: /tmp/bug-0ff6ef.cpp clang-11: note: diagnostic msg: /tmp/bug-0ff6ef.sh clang-11: note: diagnostic msg:


$clang++ -v clang version 11.0.0 (https://github.com/llvm/llvm-project b9306fd042ce1c11d84f05d2124dfdc65b8331fe) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/haoxin/compilers/llvm-project/build/bin Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.5.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10 Candidate multilib: .;@m64 Selected multilib: .;@m64

Endilll commented 1 year ago

Assertions build is still failing: https://godbolt.org/z/eYEMTjs9s Diagnostics:

<source>:2:18: error: use of undeclared identifier 'l_volatile_long'; did you mean 'g_volatile_bool'?
    2 | struct decltype((l_volatile_long = throw))::template c<>
      |                  ^~~~~~~~~~~~~~~
      |                  g_volatile_bool
<source>:1:6: note: 'g_volatile_bool' declared here
    1 | bool g_volatile_bool; a < b < 
      |      ^
<source>:2:36: error: assigning to 'bool' from incompatible type 'void'
    2 | struct decltype((l_volatile_long = throw))::template c<>
      |                                    ^~~~~
<source>:2:57: error: expected '>'
    2 | struct decltype((l_volatile_long = throw))::template c<>
      |                                                         ^
<source>:1:29: note: to match this '<'
    1 | bool g_volatile_bool; a < b < 
      |                             ^
<source>:1:23: error: no template named 'a'
    1 | bool g_volatile_bool; a < b < 
      |                       ^
<source>:2:36: error: assigning to 'bool' from incompatible type 'void'
    2 | struct decltype((l_volatile_long = throw))::template c<>
      |                                    ^~~~~

Assertion:

clang++: /root/llvm-project/clang/lib/Sema/SemaTemplate.cpp:4222: clang::TypeResult clang::Sema::ActOnTagTemplateIdType(clang::Sema::TagUseKind, clang::TypeSpecifierType, clang::SourceLocation, clang::CXXScopeSpec&, clang::SourceLocation, clang::Sema::TemplateTy, clang::SourceLocation, clang::SourceLocation, clang::ASTTemplateArgsPtr, clang::SourceLocation): Assertion `SS.getScopeRep() == DTN->getQualifier()' failed.

Stack:

0.  Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics <source>
1.  <eof> parser at end of file
 #0 0x0000559635e23dbf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c12dbf)
 #1 0x0000559635e21b2c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c10b2c)
 #2 0x0000559635d6b1a8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f63c944e420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f63c8f1b00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007f63c8efa859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f63c8efa729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f63c8f0bfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x0000559638f370f2 clang::Sema::ActOnTagTemplateIdType(clang::Sema::TagUseKind, clang::TypeSpecifierType, clang::SourceLocation, clang::CXXScopeSpec&, clang::SourceLocation, clang::OpaquePtr<clang::TemplateName>, clang::SourceLocation, clang::SourceLocation, llvm::MutableArrayRef<clang::ParsedTemplateArgument>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d260f2)
 #9 0x00005596385cdeb3 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63bceb3)
#10 0x00005596385a6b1d clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6395b1d)
#11 0x00005596385a9dd5 clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&, clang::ImplicitTypenameContext, clang::AccessSpecifier, clang::Parser::DeclSpecContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6398dd5)
#12 0x00005596385b0318 clang::Parser::ParseTypeName(clang::SourceRange*, clang::DeclaratorContext, clang::AccessSpecifier, clang::Decl**, clang::ParsedAttributes*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x639f318)
#13 0x0000559638664559 clang::Parser::ParseTemplateArgument() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6453559)
#14 0x000055963866af2e clang::Parser::ParseTemplateArgumentList(llvm::SmallVector<clang::ParsedTemplateArgument, 16u>&, clang::OpaquePtr<clang::TemplateName>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6459f2e)
#15 0x000055963866b30f clang::Parser::ParseTemplateIdAfterTemplateName(bool, clang::SourceLocation&, llvm::SmallVector<clang::ParsedTemplateArgument, 16u>&, clang::SourceLocation&, clang::OpaquePtr<clang::TemplateName>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x645a30f)
#16 0x000055963866b508 clang::Parser::AnnotateTemplateIdToken(clang::OpaquePtr<clang::TemplateName>, clang::TemplateNameKind, clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x645a508)
#17 0x00005596385f2707 clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool, bool*, bool, clang::IdentifierInfo**, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63e1707)
#18 0x0000559638573ecd clang::Parser::TryAnnotateTypeOrScopeToken(clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6362ecd)
#19 0x0000559638675dfb clang::Parser::isCXXDeclarationSpecifier(clang::ImplicitTypenameContext, clang::Parser::TPResult, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6464dfb)
#20 0x0000559638679a4b clang::Parser::isCXXTypeId(clang::Parser::TentativeCXXTypeIdContext, bool&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6468a4b)
#21 0x000055963866453b clang::Parser::ParseTemplateArgument() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x645353b)
#22 0x000055963866af2e clang::Parser::ParseTemplateArgumentList(llvm::SmallVector<clang::ParsedTemplateArgument, 16u>&, clang::OpaquePtr<clang::TemplateName>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6459f2e)
#23 0x000055963866b30f clang::Parser::ParseTemplateIdAfterTemplateName(bool, clang::SourceLocation&, llvm::SmallVector<clang::ParsedTemplateArgument, 16u>&, clang::SourceLocation&, clang::OpaquePtr<clang::TemplateName>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x645a30f)
#24 0x00005596385ac612 clang::Parser::ParseImplicitInt(clang::DeclSpec&, clang::CXXScopeSpec*, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x639b612)
#25 0x00005596385a91f3 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63981f3)
#26 0x0000559638571c4b clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6360c4b)
#27 0x000055963857257f clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.0) Parser.cpp:0:0
#28 0x0000559638578f21 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6367f21)
#29 0x0000559638579896 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6368896)
#30 0x000055963856d65a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x635c65a)
#31 0x00005596370717c8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4e607c8)
#32 0x00005596368c8f09 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x46b7f09)
#33 0x000055963684d3d6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x463c3d6)
#34 0x00005596369ab9e6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x479a9e6)
#35 0x00005596332df46d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x10ce46d)
#36 0x00005596332db16a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#37 0x00005596366b539d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#38 0x0000559635d6b6b0 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3b5a6b0)
#39 0x00005596366b59bf clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#40 0x000055963667d0ec clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x446c0ec)
#41 0x000055963667db7d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x446cb7d)
#42 0x0000559636685c5d clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4474c5d)
#43 0x00005596332dd6ca clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x10cc6ca)
#44 0x00005596331e4235 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xfd3235)
#45 0x00007f63c8efc083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#46 0x00005596332d5f4e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x10c4f4e)