Closed
Description
branch: llvmorg-18.1.6
stack trace:
#0 0x00007ffff67a6387 in raise () from /lib64/libc.so.6
#1 0x00007ffff67a7a78 in abort () from /lib64/libc.so.6
#2 0x0000000002ebd770 in llvm::llvm_unreachable_internal (msg=0xb81817c "unknown ArgumentKind",
file=0xb818135 "./llvm-project/clang/lib/AST/ASTDiagnostic.cpp", line=1249)
at ./llvm-project/llvm/lib/Support/ErrorHandling.cpp:212
#3 0x0000000008f03b58 in (anonymous namespace)::TemplateDiff::InitializeNonTypeDiffVariables (Context=..., Iter=..., Default=0x7ffff1df1e98, Value=...,
HasInt=@0x7ffffffeb3f6: false, IntType=..., IsNullPtr=@0x7ffffffeb3f4: false, E=@0x7ffffffeb438: 0x126d8680, VD=@0x7ffffffeb3f8: 0x0,
NeedAddressOf=@0x7ffffffeb3f2: false) at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:1249
#4 0x0000000008f027cf in (anonymous namespace)::TemplateDiff::DiffNonTypes (this=0x7ffffffeb680, FromIter=..., ToIter=..., FromDefaultNonTypeDecl=0x7ffff1df1e98,
ToDefaultNonTypeDecl=0x7ffff1df1e98) at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:1291
#5 0x0000000008f01d49 in (anonymous namespace)::TemplateDiff::DiffTemplate (this=0x7ffffffeb680, FromTST=0x7ffff078a750, ToTST=0x126d8920)
at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:1382
#6 0x0000000008f00a4d in (anonymous namespace)::TemplateDiff::DiffTemplate (this=0x7ffffffeb680)
at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:2112
#7 0x0000000008effff7 in FormatTemplateTypeDiff (Context=..., FromType=..., ToType=..., PrintTree=false, PrintFromType=true, ElideType=true, ShowColors=true, OS=...)
at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:2141
#8 0x0000000008eff5bf in clang::FormatASTNodeDiagnosticArgument (Kind=clang::DiagnosticsEngine::ak_qualtype_pair, Val=140737488275352, Modifier=..., Argument=...,
PrevArgs=..., Output=..., Cookie=0xe6859c0, QualTypeVals=...) at ./llvm-project/clang/lib/AST/ASTDiagnostic.cpp:409
#9 0x00000000031c0681 in clang::DiagnosticsEngine::ConvertArgToString (this=0xe66a930, Kind=clang::DiagnosticsEngine::ak_qualtype_pair, Val=140737488275352, Modifier=...,
Argument=..., PrevArgs=..., Output=..., QualTypeVals=...) at ./llvm-project/clang/include/clang/Basic/Diagnostic.h:885
#10 0x00000000031bd0c5 in clang::Diagnostic::FormatDiagnostic (this=0x7ffffffed438, DiagStr=0xae1dd54 <(anonymous namespace)::StaticDiagInfoDescriptions+312396> "}0",
DiagEnd=0xae1dd54 <(anonymous namespace)::StaticDiagInfoDescriptions+312396> "}0", OutStr=...)
at ./llvm-project/clang/lib/Basic/Diagnostic.cpp:1108
#11 0x00000000031bda3f in HandleSelectModifier (DInfo=..., ValNo=0,
Argument=0xae1dd11 <(anonymous namespace)::StaticDiagInfoDescriptions+312329> "%diff{ from returned value of type $ to function return type $|}1,2}0", ArgumentLen=91,
OutStr=...) at ./llvm-project/clang/lib/Basic/Diagnostic.cpp:628
#12 0x00000000031bc5f2 in clang::Diagnostic::FormatDiagnostic (this=0x7ffffffed438, DiagStr=0xae1dd56 <(anonymous namespace)::StaticDiagInfoDescriptions+312398> "",
DiagEnd=0xae1dd56 <(anonymous namespace)::StaticDiagInfoDescriptions+312398> "", OutStr=...)
at ./llvm-project/clang/lib/Basic/Diagnostic.cpp:983
#13 0x00000000031bbd8c in clang::Diagnostic::FormatDiagnostic (this=0x7ffffffed438, OutStr=...) at ./llvm-project/clang/lib/Basic/Diagnostic.cpp:800
#14 0x00000000040376fa in clang::TextDiagnosticPrinter::HandleDiagnostic (this=0xe670df0, Level=clang::DiagnosticsEngine::Error, Info=...)
at ./llvm-project/clang/lib/Frontend/TextDiagnosticPrinter.cpp:117
#15 0x00000000031cb333 in clang::DiagnosticIDs::EmitDiag (this=0xe668790, Diag=..., DiagLevel=clang::DiagnosticIDs::Error)
at ./llvm-project/clang/lib/Basic/DiagnosticIDs.cpp:823
#16 0x00000000031cb1b3 in clang::DiagnosticIDs::ProcessDiag (this=0xe668790, Diag=...) at ./llvm-project/clang/lib/Basic/DiagnosticIDs.cpp:815
#17 0x00000000031bff69 in clang::DiagnosticsEngine::ProcessDiag (this=0xe66a930) at ./llvm-project/clang/include/clang/Basic/Diagnostic.h:1042
#18 0x00000000031bbbb7 in clang::DiagnosticsEngine::EmitCurrentDiagnostic (this=0xe66a930, Force=false)
at ./llvm-project/clang/lib/Basic/Diagnostic.cpp:545
#19 0x000000000739e17d in clang::Sema::EmitCurrentDiagnostic (this=0xe6e1450, DiagID=4790) at ./llvm-project/clang/lib/Sema/Sema.cpp:1613
#20 0x00000000073ae946 in clang::Sema::ImmediateDiagBuilder::~ImmediateDiagBuilder (this=0x7ffffffeef30)
at ./llvm-project/clang/include/clang/Sema/Sema.h:1764
#21 0x00000000073bc2b9 in std::_Optional_payload_base<clang::Sema::ImmediateDiagBuilder>::_M_destroy (this=0x7ffffffeef30)
at /usr/include/c++/13.2.0/optional:287
#22 0x00000000073bc277 in std::_Optional_payload_base<clang::Sema::ImmediateDiagBuilder>::_M_reset (this=0x7ffffffeef30)
at /usr/include/c++/13.2.0/optional:318
#23 0x00000000073d4c85 in std::_Optional_base_impl<clang::Sema::ImmediateDiagBuilder, std::_Optional_base<clang::Sema::ImmediateDiagBuilder, false, false> >::_M_reset (
this=0x7ffffffeef30) at /usr/include/c++/13.2.0/optional:468
#24 0x00000000073aeb05 in std::optional<clang::Sema::ImmediateDiagBuilder>::reset (this=0x7ffffffeef30)
at /usr/include/c++/13.2.0/optional:1170
#25 0x000000000739e946 in clang::Sema::SemaDiagnosticBuilder::~SemaDiagnosticBuilder (this=0x7ffffffeef10)
at ./llvm-project/clang/lib/Sema/Sema.cpp:1896
#26 0x0000000007ebf712 in clang::InitializationSequence::Diagnose (this=0x7fffffff0f20, S=..., Entity=..., Kind=..., Args=...)
at ./llvm-project/clang/lib/Sema/SemaInit.cpp:9681
#27 0x0000000007eba0a7 in clang::InitializationSequence::Perform (this=0x7fffffff0f20, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0)
at ./llvm-project/clang/lib/Sema/SemaInit.cpp:8540
#28 0x0000000007ec61cd in clang::Sema::PerformCopyInitialization (this=0xe6e1450, Entity=..., EqualLoc=..., Init=..., TopLevelOfInitList=false, AllowExplicit=false)
at ./llvm-project/clang/lib/Sema/SemaInit.cpp:10568
#29 0x000000000818f921 in clang::Sema::PerformMoveOrCopyInitialization (this=0xe6e1450, Entity=..., NRInfo=..., Value=0x7ffff2c18298, SupressSimplerImplicitMoves=false)
at ./llvm-project/clang/lib/Sema/SemaStmt.cpp:3567
#30 0x0000000008192e60 in clang::Sema::BuildReturnStmt (this=0xe6e1450, ReturnLoc=..., RetValExp=0x7ffff2c18298, AllowRecovery=false)
at ./llvm-project/clang/lib/Sema/SemaStmt.cpp:4179
#31 0x00000000085a3ed3 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::RebuildReturnStmt (this=0x7fffffff57b8, ReturnLoc=..., Result=0x7ffff2c18298)
at ./llvm-project/clang/lib/Sema/TreeTransform.h:1480
#32 0x000000000858d451 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt (this=0x7fffffff57b8, S=0x7ffff1f20828)
at ./llvm-project/clang/lib/Sema/TreeTransform.h:7962
#33 0x00000000085493f2 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt (this=0x7fffffff57b8, S=0x7ffff1f20828,
SDK=clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::SDK_Discarded)
at ./llvm-18.1.6-build/tools/clang/include/clang/AST/StmtNodes.inc:914
#34 0x0000000008564f36 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt (this=0x7fffffff57b8, S=0x7ffff1f20838, IsStmtExpr=false)
at ./llvm-project/clang/lib/Sema/TreeTransform.h:7544
#35 0x00000000085934f7 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt (this=0x7fffffff57b8, S=0x7ffff1f20838)
at ./llvm-project/clang/lib/Sema/TreeTransform.h:7526
#36 0x000000000854a58e in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt (this=0x7fffffff57b8, S=0x7ffff1f20838,
SDK=clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::SDK_Discarded)
at ./llvm-18.1.6-build/tools/clang/include/clang/AST/StmtNodes.inc:1498
#37 0x0000000008549173 in clang::Sema::SubstStmt (this=0xe6e1450, S=0x7ffff1f20838, TemplateArgs=...)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:4098
#38 0x00000000085d7e8e in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x126f3ea0, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5185
#39 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#40 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff6320)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#41 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x12822dd8, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#42 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#43 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff6a60)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#44 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffef029880, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#45 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#46 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff71a0)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#47 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffef026ed0, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#48 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#49 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff78e0)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#50 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffef0248f8, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#51 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#52 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff8020)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#53 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffef0292c8, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#54 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#55 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff8760)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#56 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffef025b20, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#57 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#58 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff8ea0)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#59 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x7fffee3c6578, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#60 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#61 0x00000000086403d8 in clang::Sema::GlobalEagerInstantiationScope::perform (this=0x7fffffff95e0)
at ./llvm-project/clang/include/clang/Sema/Sema.h:10149
#62 0x00000000085d8029 in clang::Sema::InstantiateFunctionDefinition (this=0xe6e1450, PointOfInstantiation=..., Function=0x12a64260, Recursive=true,
DefinitionRequired=false, AtEndOfTU=true) at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:5209
#63 0x00000000085da645 in clang::Sema::PerformPendingInstantiations (this=0xe6e1450, LocalOnly=false)
at ./llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:6444
#64 0x000000000739ac1f in clang::Sema::ActOnEndOfTranslationUnitFragment (this=0xe6e1450, Kind=clang::Sema::Normal)
at ./llvm-project/clang/lib/Sema/Sema.cpp:1088
#65 0x000000000739afe2 in clang::Sema::ActOnEndOfTranslationUnit (this=0xe6e1450) at ./llvm-project/clang/lib/Sema/Sema.cpp:1124
#66 0x00000000071f9197 in clang::Parser::ParseTopLevelDecl (this=0xe6ee240, Result=..., ImportState=@0x7fffffffac14: clang::Sema::ModuleImportState::NotACXX20Module)
at ./llvm-project/clang/lib/Parse/Parser.cpp:727
#67 0x00000000071f410a in clang::ParseAST (S=..., PrintStats=false, SkipFunctionBodies=false) at ./llvm-project/clang/lib/Parse/ParseAST.cpp:163
#68 0x0000000003fd00fb in clang::ASTFrontendAction::ExecuteAction (this=0xe668a60) at ./llvm-project/clang/lib/Frontend/FrontendAction.cpp:1183
#69 0x0000000003d13cb6 in clang::CodeGenAction::ExecuteAction (this=0xe668a60) at ./llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1153
#70 0x0000000003fcfb1c in clang::FrontendAction::Execute (this=0xe668a60) at ./llvm-project/clang/lib/Frontend/FrontendAction.cpp:1069
#71 0x0000000003eef321 in clang::CompilerInstance::ExecuteAction (this=0xe65ecd0, Act=...)
at ./llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1057
#72 0x0000000004193c11 in clang::ExecuteCompilerInvocation (Clang=0xe65ecd0)
at ./llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272
#73 0x00000000013955df in cc1_main (Argv=..., Argv0=0xe656560 "/home/user/.local/bin/clang-18", MainAddr=0x1384960 <GetExecutablePath[abi:cxx11](char const*, bool)>)
at ./llvm-project/clang/tools/driver/cc1_main.cpp:294
#74 0x00000000013860c2 in ExecuteCC1Tool (ArgV=..., ToolContext=...) at ./llvm-project/clang/tools/driver/driver.cpp:365
#75 0x0000000001387a7d in clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(llvm::SmallVectorImpl<char const*>&) const (this=0x7fffffffc868, ArgV=...)
at ./llvm-project/clang/tools/driver/driver.cpp:504
#76 0x0000000001387a4d in llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) (callable=140737488341096, params=...) at ./llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45
#77 0x0000000003d8aec1 in llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const (this=0x7fffffffcce0,
params=...) at ./llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68
#78 0x0000000003d87a08 in clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::$_0::operator()() const (this=0x7fffffffbe58) at ./llvm-project/clang/lib/Driver/Job.cpp:440
#79 0x0000000003d879d5 in 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::$_0>(long) (callable=140737488338520)
at ./llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45
#80 0x0000000001cb2009 in llvm::function_ref<void ()>::operator()() const (this=0x7fffffffbe18)
at ./llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68
#81 0x0000000002eb500b in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (this=0x7fffffffbe98, Fn=...)
at ./llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426
#82 0x0000000003d8736b in clang::driver::CC1Command::Execute (this=0xe65f120, Redirects=..., ErrMsg=0x7fffffffc380, ExecutionFailed=0x7fffffffc37f)
at ./llvm-project/clang/lib/Driver/Job.cpp:440
#83 0x0000000003d2887a in clang::driver::Compilation::ExecuteCommand (this=0xe6595b0, C=..., FailingCommand=@0x7fffffffc478: 0x0, LogOnly=false)
at ./llvm-project/clang/lib/Driver/Compilation.cpp:199
#84 0x0000000003d28a57 in clang::driver::Compilation::ExecuteJobs (this=0xe6595b0, Jobs=..., FailingCommands=..., LogOnly=false)
at ./llvm-project/clang/lib/Driver/Compilation.cpp:253
#85 0x0000000003d42e22 in clang::driver::Driver::ExecuteCompilation (this=0x7fffffffc960, C=..., FailingCommands=...)
at ./llvm-project/clang/lib/Driver/Driver.cpp:1918
#86 0x0000000001385b93 in clang_main (Argc=40, Argv=0x7fffffffe108, ToolContext=...) at ./llvm-project/clang/tools/driver/driver.cpp:540
#87 0x00000000013b93d5 in main (argc=40, argv=0x7fffffffe108) at ./llvm-18.1.6-build/tools/clang/tools/driver/clang-driver.cpp:17
additional Information:
(gdb) frame 3
(gdb) p Default->getNameAsString()
$1 = "memberObjPtr"
(gdb) p TA.getKind()
$2 = clang::TemplateArgument::StructuralValue
Here, my memberObjPtr
is a NTTP declared as auto
and is instantiated as a member object pointer. Unfortunately I have not identified a minimal test case for which this fails but I am willing to collaborate on this to identify the core issue. Please let me know what additional information I should share from the coredump.