llvm / llvm-project

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

OOM when compiling a medium size c++ code #83122

Open niXman opened 6 months ago

niXman commented 6 months ago

hello,

I was just trying to compile my hobby project: https://github.com/niXman/cmdargs I was unpleasantly surprised that when using clang all available 14Gb memory was used, while when using GCC only 1.2 Gb of memory was used!

at the same time, the same code when using clang takes three times longer to compile! clang: 1m24,296s gcc: 0m31,485s

cmdline used: clang: time clang++15 -std=c++17 main.cpp -I../include -omain gcc: time g++ -std=c++17 main.cpp -I../include -omain

clang version:

Ubuntu clang version 15.0.7 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin

gcc version:

g++ (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

any thoughts?

best!

ps moreover! while working on this project I was forced to disable clangd because it also took up all the available memory and kept freezing.

llvmbot commented 6 months ago

@llvm/issue-subscribers-clang-frontend

Author: niXman (niXman)

hello, I was just trying to compile my hobby project: https://github.com/niXman/cmdargs I was unpleasantly surprised that when using `clang` all available 14Gb memory was used, while when using `GCC` only 1.2 Gb of memory was used! at the same time, the same code when using clang takes three times longer to compile! clang: 1m24,296s gcc: 0m31,485s cmdline used: clang: time clang++15 -std=c++17 main.cpp -I../include -omain gcc: time g++ -std=c++17 main.cpp -I../include -omain clang version: > Ubuntu clang version 15.0.7 > Target: x86_64-pc-linux-gnu > Thread model: posix > InstalledDir: /usr/bin gcc version: > g++ (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 > Copyright (C) 2022 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. any thoughts? best! ps moreover! while working on this project I was forced to disable `clangd` because it also took up all the available memory and kept freezing.
tbaederr commented 6 months ago

You've linked to a header-only library. What's the actual source file your're trying to compile? Any one using that header? One of the examples?

niXman commented 6 months ago

@tbaederr

this one: https://github.com/niXman/cmdargs/blob/main/test/main.cpp

ie:

0) clone 1) cd cmdargs/test 2) clang++ -std=c++17 main.cpp -I../include -omain

niXman commented 6 months ago

hi,

is there some kind of state list or some queue of the issues just to be informed about?

niXman commented 3 months ago

hi, any update?

tbaederr commented 3 months ago

I don't know of anyone working on this issue, sorry. If you want to help make it easier for others, you could try producing a minimal test case.

Endilll commented 3 months ago

Compiler Explorer suggests that even Clang 5 struggles with this code, so this is not a regression: https://godbolt.org/z/YzoeMfGEo

I tested this on Clang 19.0 f34dedbf44a0, and the compilation finished in 5m 12s after consuming about 16 GB of memory. Errors produced might be pointing out to this code hitting some pathological code path in our constexpr evaluator:

In file included from main.cpp:27:
./cmdargs.hpp:2024:20: error: constexpr if condition is not a constant expression
 2024 |     if constexpr ( args.template contains<details::help_option_type>() ) {
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:1387:25: note: in instantiation of function template specialization 'cmdargs::is_help_requested<cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>>' requested here
 1387 |         assert(cmdargs::is_help_requested(os, margv[0], args) == true);
      |                         ^
./cmdargs.hpp:2024:20: note: function parameter 'args' with unknown value cannot be used in a constant expression
 2024 |     if constexpr ( args.template contains<details::help_option_type>() ) {
      |                    ^
./cmdargs.hpp:2023:87: note: declared here
 2023 | bool is_help_requested(std::ostream &os, const char *argv0, const args_pack<Args...> &args) {
      |                                                                                       ^
./cmdargs.hpp:2037:20: error: constexpr if condition is not a constant expression
 2037 |     if constexpr ( args.template contains<details::version_option_type>() ) {
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:1463:25: note: in instantiation of function template specialization 'cmdargs::is_version_requested<cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>, cmdargs::option<cmdargs::details::version_tag, std::basic_string<char>>>' requested here
 1463 |         assert(cmdargs::is_version_requested(os, margv[0], args) == false);
      |                         ^
./cmdargs.hpp:2037:20: note: function parameter 'args' with unknown value cannot be used in a constant expression
 2037 |     if constexpr ( args.template contains<details::version_option_type>() ) {
      |                    ^
./cmdargs.hpp:2036:90: note: declared here
 2036 | bool is_version_requested(std::ostream &os, const char *argv0, const args_pack<Args...> &args) {
      |                                                                                          ^
./cmdargs.hpp:2024:20: error: constexpr if condition is not a constant expression
 2024 |     if constexpr ( args.template contains<details::help_option_type>() ) {
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./cmdargs.hpp:2052:12: note: in instantiation of function template specialization 'cmdargs::is_help_requested<cmdargs::option<netsrc_tag, std::basic_string<char>>, cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>, cmdargs::option<cmdargs::details::version_tag, std::basic_string<char>>>' requested here
 2052 |     return is_help_requested(os, argv0, args) || is_version_requested(os, argv0, args);
      |            ^
main.cpp:1537:25: note: in instantiation of function template specialization 'cmdargs::is_help_or_version_requested<cmdargs::option<netsrc_tag, std::basic_string<char>>, cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>, cmdargs::option<cmdargs::details::version_tag, std::basic_string<char>>>' requested here
 1537 |         assert(cmdargs::is_help_or_version_requested(os, margv[0], args) == false);
      |                         ^
./cmdargs.hpp:2024:20: note: function parameter 'args' with unknown value cannot be used in a constant expression
 2024 |     if constexpr ( args.template contains<details::help_option_type>() ) {
      |                    ^
./cmdargs.hpp:2023:87: note: declared here
 2023 | bool is_help_requested(std::ostream &os, const char *argv0, const args_pack<Args...> &args) {
      |                                                                                       ^
./cmdargs.hpp:2037:20: error: constexpr if condition is not a constant expression
 2037 |     if constexpr ( args.template contains<details::version_option_type>() ) {
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./cmdargs.hpp:2052:50: note: in instantiation of function template specialization 'cmdargs::is_version_requested<cmdargs::option<netsrc_tag, std::basic_string<char>>, cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>, cmdargs::option<cmdargs::details::version_tag, std::basic_string<char>>>' requested here
 2052 |     return is_help_requested(os, argv0, args) || is_version_requested(os, argv0, args);
      |                                                  ^
main.cpp:1537:25: note: in instantiation of function template specialization 'cmdargs::is_help_or_version_requested<cmdargs::option<netsrc_tag, std::basic_string<char>>, cmdargs::option<filesrc_tag, std::basic_string<char>>, cmdargs::option<fmode_tag, std::basic_string<char>>, cmdargs::option<cmdargs::details::help_tag, bool>, cmdargs::option<cmdargs::details::version_tag, std::basic_string<char>>>' requested here
 1537 |         assert(cmdargs::is_help_or_version_requested(os, margv[0], args) == false);
      |                         ^
./cmdargs.hpp:2037:20: note: function parameter 'args' with unknown value cannot be used in a constant expression
 2037 |     if constexpr ( args.template contains<details::version_option_type>() ) {
      |                    ^
./cmdargs.hpp:2036:90: note: declared here
 2036 | bool is_version_requested(std::ostream &os, const char *argv0, const args_pack<Args...> &args) {
      |                                                                                          ^
4 errors generated.
Endilll commented 3 months ago

This stack trace is taken from recent build at bfa937a48767. While it's incomplete, it still highlights that we're stuck in a loop. I think I can produce a better stack trace if necessary.

(lldb) bt
* thread #1, name = 'clang', stop reason = signal SIGSTOP
  * frame #0: 0x00007f9afb80f638 libclang-cpp.so.19.0`clang::Sema::BuildResolvedCallExpr(clang::Expr*, clang::NamedDecl*, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, clang::CallExpr::ADLCallKind) + 1368
    frame #1: 0x00007f9afb7fb605 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 3589
    frame #2: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #3: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #4: 0x00007f9afbd108cc libclang-cpp.so.19.0`___lldb_unnamed_symbol74368 + 76
    frame #5: 0x00007f9afbd07b93 libclang-cpp.so.19.0`___lldb_unnamed_symbol74275 + 19
    frame #6: 0x00007f9afbd02d60 libclang-cpp.so.19.0`___lldb_unnamed_symbol74240 + 656
    frame #7: 0x00007f9afbd0ae6e libclang-cpp.so.19.0`___lldb_unnamed_symbol74306 + 206
    frame #8: 0x00007f9afbd02b89 libclang-cpp.so.19.0`___lldb_unnamed_symbol74240 + 185
    frame #9: 0x00007f9afbd0d6c4 libclang-cpp.so.19.0`___lldb_unnamed_symbol74345 + 356
    frame #10: 0x00007f9afbd02b89 libclang-cpp.so.19.0`___lldb_unnamed_symbol74240 + 185
    frame #11: 0x00007f9afbd0d632 libclang-cpp.so.19.0`___lldb_unnamed_symbol74345 + 210
    frame #12: 0x00007f9afbd108ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74368 + 43
    frame #13: 0x00007f9afbd1c917 libclang-cpp.so.19.0`___lldb_unnamed_symbol74425 + 55
    frame #14: 0x00007f9afbcfb682 libclang-cpp.so.19.0`clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, clang::CXXRecordDecl*, clang::Qualifiers, bool) + 1138
    frame #15: 0x00007f9afbd3f438 libclang-cpp.so.19.0`clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*, llvm::SmallVectorImpl<clang::ParmVarDecl*>&) + 216
    frame #16: 0x00007f9afbd3d891 libclang-cpp.so.19.0`clang::TemplateDeclInstantiator::VisitFunctionDecl(clang::FunctionDecl*, clang::TemplateParameterList*, clang::TemplateDeclInstantiator::RewriteKind) + 497
    frame #17: 0x00007f9afbd73ef8 libclang-cpp.so.19.0`___lldb_unnamed_symbol75093 + 24
    frame #18: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #19: 0x00007f9afbd45317 libclang-cpp.so.19.0`clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 183
    frame #20: 0x00007f9afbc99496 libclang-cpp.so.19.0`clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) + 2966
    frame #21: 0x00007f9afbcf46eb libclang-cpp.so.19.0`___lldb_unnamed_symbol74212 + 139
    frame #22: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #23: 0x00007f9afbc9b09b libclang-cpp.so.19.0`clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) + 3051
    frame #24: 0x00007f9afbb372d4 libclang-cpp.so.19.0`clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) + 868
    frame #25: 0x00007f9afbb4771c libclang-cpp.so.19.0`___lldb_unnamed_symbol70321 + 156
    frame #26: 0x00007f9afbb475f0 libclang-cpp.so.19.0`clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) + 288
    frame #27: 0x00007f9afbb47940 libclang-cpp.so.19.0`clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) + 176
    frame #28: 0x00007f9afbb47c53 libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 371
    frame #29: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #30: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #31: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #32: 0x00007f9afbd1c917 libclang-cpp.so.19.0`___lldb_unnamed_symbol74425 + 55
    frame #33: 0x00007f9afbcfa8ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74232 + 187
    frame #34: 0x00007f9afbcfb1c6 libclang-cpp.so.19.0`clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) + 118
    frame #35: 0x00007f9afbbc0617 libclang-cpp.so.19.0`clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) + 1607
    frame #36: 0x00007f9afbd1a64d libclang-cpp.so.19.0`___lldb_unnamed_symbol74409 + 2029
    frame #37: 0x00007f9afbd20e27 libclang-cpp.so.19.0`___lldb_unnamed_symbol74451 + 119
    frame #38: 0x00007f9afbd1e414 libclang-cpp.so.19.0`___lldb_unnamed_symbol74433 + 212
    frame #39: 0x00007f9afbcfa8ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74232 + 187
    frame #40: 0x00007f9afbd0d58f libclang-cpp.so.19.0`___lldb_unnamed_symbol74345 + 47
    frame #41: 0x00007f9afbd11128 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 24
    frame #42: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #43: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #44: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #45: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #46: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #47: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #48: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #49: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #50: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #51: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #52: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #53: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #54: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #55: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #56: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #57: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #58: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #59: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #60: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #61: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #62: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #63: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #64: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #65: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #66: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #67: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #68: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #69: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #70: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #71: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #72: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #73: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #74: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #75: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #76: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #77: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #78: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #79: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #80: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #81: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #82: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #83: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #84: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #85: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #86: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #87: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #88: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #89: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #90: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #91: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #92: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #93: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #94: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #95: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #96: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #97: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #98: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #99: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #100: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #101: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #102: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #103: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #104: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #105: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #106: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #107: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #108: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #109: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #110: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #111: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #112: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #113: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #114: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #115: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #116: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #117: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #118: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #119: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #120: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #121: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #122: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #123: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #124: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #125: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #126: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #127: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #128: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #129: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #130: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #131: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #132: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #133: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #134: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #135: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #136: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #137: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #138: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #139: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #140: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #141: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #142: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #143: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #144: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #145: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #146: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #147: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #148: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #149: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #150: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #151: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #152: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #153: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #154: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #155: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #156: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #157: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #158: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #159: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #160: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #161: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #162: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #163: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #164: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #165: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #166: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #167: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #168: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #169: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #170: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #171: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #172: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #173: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #174: 0x00007f9afbd11143 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 51
    frame #175: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #176: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #177: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #178: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #179: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #180: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #181: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #182: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #183: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #184: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #185: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #186: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #187: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #188: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #189: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #190: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #191: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #192: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #193: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #194: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #195: 0x00007f9afbd11158 libclang-cpp.so.19.0`___lldb_unnamed_symbol74376 + 72
    frame #196: 0x00007f9afbd23a35 libclang-cpp.so.19.0`___lldb_unnamed_symbol74483 + 21
    frame #197: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #198: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #199: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #200: 0x00007f9afb8f5758 libclang-cpp.so.19.0`___lldb_unnamed_symbol66246 + 1128
    frame #201: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #202: 0x00007f9afb83176f libclang-cpp.so.19.0`clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) + 751
    frame #203: 0x00007f9afb8364bc libclang-cpp.so.19.0`___lldb_unnamed_symbol64707 + 380
    frame #204: 0x00007f9afb80040b libclang-cpp.so.19.0`clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*) + 219
    frame #205: 0x00007f9afb7ffdb5 libclang-cpp.so.19.0`clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clang::NamedDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo const*) + 261
    frame #206: 0x00007f9afbb466d4 libclang-cpp.so.19.0`clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) + 1268
    frame #207: 0x00007f9afbb47f92 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 242
    frame #208: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #209: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #210: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #211: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #212: 0x00007f9afbd108ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74368 + 43
    frame #213: 0x00007f9afbd013b5 libclang-cpp.so.19.0`___lldb_unnamed_symbol74236 + 437
    frame #214: 0x00007f9afbd1a240 libclang-cpp.so.19.0`___lldb_unnamed_symbol74409 + 992
    frame #215: 0x00007f9afbd20e27 libclang-cpp.so.19.0`___lldb_unnamed_symbol74451 + 119
    frame #216: 0x00007f9afbd1e414 libclang-cpp.so.19.0`___lldb_unnamed_symbol74433 + 212
    frame #217: 0x00007f9afbcfa8ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74232 + 187
    frame #218: 0x00007f9afbcfb1c6 libclang-cpp.so.19.0`clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) + 118
    frame #219: 0x00007f9afbbc0617 libclang-cpp.so.19.0`clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) + 1607
    frame #220: 0x00007f9afbd1a64d libclang-cpp.so.19.0`___lldb_unnamed_symbol74409 + 2029
    frame #221: 0x00007f9afbd20e27 libclang-cpp.so.19.0`___lldb_unnamed_symbol74451 + 119
    frame #222: 0x00007f9afbd1e414 libclang-cpp.so.19.0`___lldb_unnamed_symbol74433 + 212
    frame #223: 0x00007f9afbcfa8ab libclang-cpp.so.19.0`___lldb_unnamed_symbol74232 + 187
    frame #224: 0x00007f9afbd01337 libclang-cpp.so.19.0`___lldb_unnamed_symbol74236 + 311
    frame #225: 0x00007f9afbd011c2 libclang-cpp.so.19.0`clang::Sema::SubstTemplateArgument(clang::TemplateArgumentLoc const&, clang::MultiLevelTemplateArgumentList const&, clang::TemplateArgumentLoc&, clang::SourceLocation, clang::DeclarationName const&) + 82
    frame #226: 0x00007f9afbbcb22b libclang-cpp.so.19.0`___lldb_unnamed_symbol71095 + 779
    frame #227: 0x00007f9afbbcacfe libclang-cpp.so.19.0`clang::Sema::SubstDefaultTemplateArgumentIfAvailable(clang::TemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::Decl*, llvm::ArrayRef<clang::TemplateArgument>, llvm::ArrayRef<clang::TemplateArgument>, bool&) + 430
    frame #228: 0x00007f9afbc9906d libclang-cpp.so.19.0`clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) + 1901
    frame #229: 0x00007f9afbcf46eb libclang-cpp.so.19.0`___lldb_unnamed_symbol74212 + 139
    frame #230: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #231: 0x00007f9afbc9b09b libclang-cpp.so.19.0`clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) + 3051
    frame #232: 0x00007f9afbb372d4 libclang-cpp.so.19.0`clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) + 868
    frame #233: 0x00007f9afbb4771c libclang-cpp.so.19.0`___lldb_unnamed_symbol70321 + 156
    frame #234: 0x00007f9afbb475f0 libclang-cpp.so.19.0`clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) + 288
    frame #235: 0x00007f9afbb47940 libclang-cpp.so.19.0`clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) + 176
    frame #236: 0x00007f9afbb47c53 libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 371
    frame #237: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #238: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #239: 0x00007f9afbd0cd56 libclang-cpp.so.19.0`___lldb_unnamed_symbol74339 + 486
    frame #240: 0x00007f9afbcff303 libclang-cpp.so.19.0`clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) + 83
    frame #241: 0x00007f9afbd43f66 libclang-cpp.so.19.0`clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) + 358
    frame #242: 0x00007f9afbd38a51 libclang-cpp.so.19.0`clang::Sema::BuildVariableInstantiation(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::DeclContext*, clang::LocalInstantiationScope*, bool, clang::VarTemplateSpecializationDecl*) + 1569
    frame #243: 0x00007f9afbd38288 libclang-cpp.so.19.0`clang::TemplateDeclInstantiator::VisitVarDecl(clang::VarDecl*, bool, llvm::ArrayRef<clang::BindingDecl*>*) + 600
    frame #244: 0x00007f9afbd73ef8 libclang-cpp.so.19.0`___lldb_unnamed_symbol75093 + 24
    frame #245: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #246: 0x00007f9afbd45317 libclang-cpp.so.19.0`clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 183
    frame #247: 0x00007f9afbd27bfa libclang-cpp.so.19.0`___lldb_unnamed_symbol74573 + 138
    frame #248: 0x00007f9afbd1248d libclang-cpp.so.19.0`___lldb_unnamed_symbol74384 + 637
    frame #249: 0x00007f9afbd00a98 libclang-cpp.so.19.0`clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 88
    frame #250: 0x00007f9afbd4711c libclang-cpp.so.19.0`clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) + 2764
    frame #251: 0x00007f9afb509261 libclang-cpp.so.19.0`clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 65
    frame #252: 0x00007f9afbc9ea13 libclang-cpp.so.19.0`clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) + 227
    frame #253: 0x00007f9afb7f5f11 libclang-cpp.so.19.0`clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*, bool) + 1553
    frame #254: 0x00007f9afbb47f75 libclang-cpp.so.19.0`___lldb_unnamed_symbol70322 + 213
    frame #255: 0x00007f9afbb47d5f libclang-cpp.so.19.0`clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 639
    frame #256: 0x00007f9afb7fae11 libclang-cpp.so.19.0`clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1553
    frame #257: 0x00007f9afb80e5d2 libclang-cpp.so.19.0`clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 82
    frame #258: 0x00007f9afac68fbc libclang-cpp.so.19.0`clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) + 5356
    frame #259: 0x00007f9afac6a700 libclang-cpp.so.19.0`clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) + 1920
    frame #260: 0x00007f9afac6ca6f libclang-cpp.so.19.0`clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) + 10991
    frame #261: 0x00007f9afac65f0d libclang-cpp.so.19.0`clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) + 285
    frame #262: 0x00007f9afac3330d libclang-cpp.so.19.0`clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) + 3853
    frame #263: 0x00007f9afac301da libclang-cpp.so.19.0`clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1578
    frame #264: 0x00007f9afac2f605 libclang-cpp.so.19.0`clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) + 981
    frame #265: 0x00007f9afac2ef89 libclang-cpp.so.19.0`clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) + 825
    frame #266: 0x00007f9afaccb652 libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) + 6866
    frame #267: 0x00007f9afacc992b libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) + 347
    frame #268: 0x00007f9afacd2480 libclang-cpp.so.19.0`clang::Parser::ParseCompoundStatementBody(bool) + 1648
    frame #269: 0x00007f9afaccb2fb libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) + 6011
    frame #270: 0x00007f9afacc992b libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) + 347
    frame #271: 0x00007f9afacd2480 libclang-cpp.so.19.0`clang::Parser::ParseCompoundStatementBody(bool) + 1648
    frame #272: 0x00007f9afaccb2fb libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) + 6011
    frame #273: 0x00007f9afacc992b libclang-cpp.so.19.0`clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) + 347
    frame #274: 0x00007f9afacd2480 libclang-cpp.so.19.0`clang::Parser::ParseCompoundStatementBody(bool) + 1648
    frame #275: 0x00007f9afacd35c6 libclang-cpp.so.19.0`clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 182
    frame #276: 0x00007f9afaced703 libclang-cpp.so.19.0`clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) + 3715
    frame #277: 0x00007f9afac3157a libclang-cpp.so.19.0`clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 6602
    frame #278: 0x00007f9afacec6dc libclang-cpp.so.19.0`clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) + 1100
    frame #279: 0x00007f9afacec07f libclang-cpp.so.19.0`clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) + 559
    frame #280: 0x00007f9afaceb266 libclang-cpp.so.19.0`clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) + 2006
    frame #281: 0x00007f9aface96a7 libclang-cpp.so.19.0`clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) + 1495
    frame #282: 0x00007f9afac19abe libclang-cpp.so.19.0`clang::ParseAST(clang::Sema&, bool, bool) + 814
    frame #283: 0x00007f9afcc5c4b9 libclang-cpp.so.19.0`clang::FrontendAction::Execute() + 89
    frame #284: 0x00007f9afcbcbda4 libclang-cpp.so.19.0`clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1012
    frame #285: 0x00007f9afccd904e libclang-cpp.so.19.0`clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 702
    frame #286: 0x0000558308eea6f3 clang`::cc1_main() at cc1_main.cpp:232:15
    frame #287: 0x0000558308ee7ae5 clang`::ExecuteCC1Tool() at driver.cpp:215:12
    frame #288: 0x0000558308ee6c88 clang`::clang_main() at driver.cpp:256:12
    frame #289: 0x0000558308ef4cfa clang`main at clang-driver.cpp:17:10
    frame #290: 0x00007f9af2042c8a libc.so.6`___lldb_unnamed_symbol3205 + 122
    frame #291: 0x00007f9af2042d45 libc.so.6`__libc_start_main + 133
    frame #292: 0x0000558308ee56e1 clang`_start + 33
Endilll commented 3 months ago

Preprocessed source: https://godbolt.org/z/93Envj3eP

Endilll commented 3 months ago

This is notoriously hard to reduce, because it's both long to test, and "stuck in what seems like a loop, but for a finite time" being a predicate that is rather hard to encode.

Endilll commented 3 months ago

@niXman You can help us get closer to resolving the issue by producing a minimal example without any includes. Sorry, I've used up all the time I could allocate to this issue. You can also try creduce or cvise, maybe you'll be more successful than I was.

niXman commented 3 months ago

@Endilll ok, I'll try...