Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[clang++-19][regression] "error: type constraint differs in template redeclaration" #110231

Open
mpusz opened this issue Sep 27, 2024 · 13 comments
Open
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" concepts C++20 concepts needs-reduction Large reproducer that should be reduced into a simpler form regression:19 Regression in 19 release

Comments

@mpusz
Copy link

mpusz commented Sep 27, 2024

I get the following error while compiling on clang-19:

[build] ../../src/core/include/mp-units/framework/quantity_point.h:111:26: error: type constraint differs in template redeclaration
[build]   111 | MP_UNITS_EXPORT template<QuantitySpec auto QS>
[build]       |                          ^
[build] ../../src/core/include/mp-units/framework/quantity_point_concepts.h:35:26: note: previous template declaration is here
[build]    35 | MP_UNITS_EXPORT template<QuantitySpec auto QS>
[build]       |                          ^

Here are the offending declarations:

The same code works fine on clang-17, clang-18, gcc-13, and gcc-14.

@github-actions github-actions bot added the clang Clang issues not falling into any other category label Sep 27, 2024
@mpusz
Copy link
Author

mpusz commented Sep 27, 2024

A repro can be found here: https://godbolt.org/z/6brEd3de6. It also fails on "clang (trunk)," but it works fine on the other compilers mentioned.

@EugeneZelenko EugeneZelenko added clang:frontend Language frontend issues, e.g. anything involving "Sema" and removed clang Clang issues not falling into any other category labels Sep 27, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Sep 27, 2024

@llvm/issue-subscribers-clang-frontend

Author: Mateusz Pusz (mpusz)

I get the following error while compiling on clang-19:
[build] ../../src/core/include/mp-units/framework/quantity_point.h:111:26: error: type constraint differs in template redeclaration
[build]   111 | MP_UNITS_EXPORT template&lt;QuantitySpec auto QS&gt;
[build]       |                          ^
[build] ../../src/core/include/mp-units/framework/quantity_point_concepts.h:35:26: note: previous template declaration is here
[build]    35 | MP_UNITS_EXPORT template&lt;QuantitySpec auto QS&gt;
[build]       |                          ^

Here are the offending declarations:

The same code works fine on clang-17, clang-18, gcc-13, and gcc-14.

@zyn0217 zyn0217 added concepts C++20 concepts needs-reduction Large reproducer that should be reduced into a simpler form labels Sep 27, 2024
@ByunghoonKim
Copy link

I came to open an issue exactly about this with llvm-19.1.0 via homebrew on Apple M1 Pro CPU.
llvm-18.1.8 via homebrew and apple-clang 16 successfully compiles.

@shafik
Copy link
Collaborator

shafik commented Sep 30, 2024

Looks like this started in clang-19: https://godbolt.org/z/oxPf3oWjM

CC @erichkeane @mizvekov

I would like a reduction to understand what is going on better though.

@Endilll
Copy link
Contributor

Endilll commented Oct 2, 2024

Confirmed on 19 and trunk.
This was very tricky to reduce. (Partial) reduction that I have works intermittently, failing to compile in 10-20% runs, and compiling successfully otherwise. So it's advised to hit the recompilation button 10 times before considering the example as working.
Another notable thing is that seemingly innocuous changes like removing an unused lambda can trigger SIGSEGV without stack instead of the diagnostic.

Note several declarations between quantity_point declarations at the end. It seems that constant evaluations and template argument deductions triggered by them bring Clang into inconsistent state.
Reduced by me and C-Reduce (https://godbolt.org/z/jbEbfrexP):

struct array {
  int __elems_[4] = {1, 2, 3, 4};
};

template < typename, template < typename > typename >
int is_specialization_of;

template < typename, template < auto... > typename >
constexpr bool is_specialization_of_v = 0;

template < auto... Params, template < auto... > typename Type >
constexpr bool is_specialization_of_v< Type< Params... >, Type > = 1;

constexpr auto get_first_of(int n) {
  auto g = [&]{};

  int __elems_[4] = {1, 2, 3, 4};
  int* first = __elems_;
  for (;;++first)
    if (n % (*first)) 
      return *first;
  return 0;
}

consteval int find_first_factor(int n) {
  constexpr auto basis = array{};
  auto k = get_first_of(n);
  return k;
}

template < typename T >
concept PowerVBase = true;

template < PowerVBase auto, int >
struct power_v {
  static constexpr auto base = 0;
};

template < typename T >
concept MagnitudeSpec = is_specialization_of_v< T, power_v >;

template < MagnitudeSpec auto... >
struct magnitude;

template < typename T >
concept Magnitude = is_specialization_of_v< T, magnitude >;

template < auto V >
consteval auto power_v_or_T() {
  return power_v< V, 0 >{};
}

template < typename >
struct magnitude_base {};

template < MagnitudeSpec auto... Ms >
struct magnitude : magnitude_base< magnitude< Ms... > > {
  template < Magnitude M >
  friend consteval auto operator*(magnitude m1, M) {
    return m1;
  }

  friend auto operator/(magnitude, auto r) {
    return pow(r);
  }

  friend auto pow(magnitude) {
    return magnitude< power_v_or_T< Ms >()... >{};
  }
};

template < int N >
struct prime_factorization {
  static constexpr int first_base = find_first_factor(N);
  static constexpr int remainder = N / first_base;
  static constexpr auto value = magnitude< power_v_or_T< first_base >() >{} * prime_factorization< remainder >::value;
};
 
template <>
struct prime_factorization< 0 > {
  static magnitude<> value;
};

template < int N >
auto prime_factorization_v = prime_factorization< N >::value;

template < auto, auto >
concept NestedQuantityKindSpecOf = true;

template < typename T, auto >
concept QuantitySpecOf = NestedQuantityKindSpecOf< 0, T{} >;

template < Magnitude auto >
struct scaled_unit {};

template < typename T >
concept Reference = true;

template < typename T, auto >
concept PointOriginFor = true;

struct unit_interface {};

template < typename M >
consteval auto operator*(M, unit_interface) -> scaled_unit< M{} > {
  return scaled_unit< M{} >{};
}

template < auto >
struct named_unit;

template < auto U >
requires(true)
struct named_unit< U > {};

template < Reference auto R, PointOriginFor< R > auto >
struct quantity_point;

auto mag_ratio = prime_factorization_v< 0 > / prime_factorization_v< 1000 >;
template class named_unit< mag_ratio * unit_interface{} >;

template < Reference auto R, PointOriginFor< R > auto >
struct quantity_point;

Clang 20 output:

<source>:122:30: error: type constraint differs in template redeclaration
  122 | template < Reference auto R, PointOriginFor< R > auto >
      |                              ^
<source>:116:30: note: previous template declaration is here
  116 | template < Reference auto R, PointOriginFor< R > auto >
      |                              ^
1 error generated.

@zyn0217
Copy link
Contributor

zyn0217 commented Oct 2, 2024

CC @mizvekov because I saw several TTPs are at play (where the situation could be horrible)

@hubert-reinterpretcast hubert-reinterpretcast changed the title [clang++-19] "error: type constraint differs in template redeclaration" [clang++-19][regression] "error: type constraint differs in template redeclaration" Oct 2, 2024
@hubert-reinterpretcast hubert-reinterpretcast added the regression:19 Regression in 19 release label Oct 2, 2024
@Endilll
Copy link
Contributor

Endilll commented Oct 2, 2024

Somewhat surprisingly, when I locally ran Clang 19.1 binary that CE uses against the reduction, I got a crash:

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name reduced.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/user/endill/llvm-reproducers/gh110231 -fcoverage-compilation-dir=/home/user/endill/llvm-reproducers/gh110231 -resource-dir /media/hdd2tb/compiler-explorer/clang-19.1.0/lib/clang/19 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/x86_64-linux-gnu/c++/14 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/backward -internal-isystem /media/hdd2tb/compiler-explorer/clang-19.1.0/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++20 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/reduced-39c73d.o -x c++ reduced.cpp
1.      reduced.cpp:122:55: current parser token '>'
  #0 0x00000000036fdb08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x36fdb08)
  #1 0x00000000036fb4ac SignalHandler(int) Signals.cpp:0:0
  #2 0x00007f9923c49d20 (/lib/x86_64-linux-gnu/libc.so.6+0x3fd20)
  #3 0x0000000007533ff3 (anonymous namespace)::StmtProfiler::VisitStmt(clang::Stmt const*) StmtProfile.cpp:0:0
  #4 0x0000000007536f65 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
  #5 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
  #6 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
  #7 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
  #8 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
  #9 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #10 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #11 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #12 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #13 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #14 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #15 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #16 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #17 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #18 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #19 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #20 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #21 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #22 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #23 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #24 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #25 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #26 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #27 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #28 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #29 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #30 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #31 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #32 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #33 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #34 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #35 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #36 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #37 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #38 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #39 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #40 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #41 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #42 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #43 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #44 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #45 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #46 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #47 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #48 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #49 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #50 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #51 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #52 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #53 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #54 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #55 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #56 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #57 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #58 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #59 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #60 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #61 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #62 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #63 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #64 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #65 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #66 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #67 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #68 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #69 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #70 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #71 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #72 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #73 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #74 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #75 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #76 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #77 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #78 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #79 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #80 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #81 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #82 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #83 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #84 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #85 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #86 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #87 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #88 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #89 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
 #90 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
 #91 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
 #92 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
 #93 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
 #94 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
 #95 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
 #96 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
 #97 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
 #98 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
 #99 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#100 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#101 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#102 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#103 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#104 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#105 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#106 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#107 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#108 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#109 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#110 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#111 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#112 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#113 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#114 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#115 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#116 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#117 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#118 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#119 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#120 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#121 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#122 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#123 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#124 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#125 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#126 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#127 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#128 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#129 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#130 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#131 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#132 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#133 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#134 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#135 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#136 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#137 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#138 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#139 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#140 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#141 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#142 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#143 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#144 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#145 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#146 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#147 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#148 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#149 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#150 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#151 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#152 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#153 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#154 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#155 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#156 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#157 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#158 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#159 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#160 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#161 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#162 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#163 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#164 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#165 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#166 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#167 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#168 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#169 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#170 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#171 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#172 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#173 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#174 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#175 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#176 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#177 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#178 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#179 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#180 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#181 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#182 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#183 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#184 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#185 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#186 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#187 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#188 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#189 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#190 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#191 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#192 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#193 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#194 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#195 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#196 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#197 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#198 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#199 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#200 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#201 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#202 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#203 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#204 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#205 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#206 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#207 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#208 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#209 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#210 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#211 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#212 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#213 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#214 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#215 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#216 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#217 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#218 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#219 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#220 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#221 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#222 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#223 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#224 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#225 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#226 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#227 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#228 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#229 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#230 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#231 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#232 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#233 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#234 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#235 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#236 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#237 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#238 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#239 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#240 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#241 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#242 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#243 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#244 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#245 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
#246 0x0000000007538510 clang::Stmt::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&, bool, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x7538510)
#247 0x000000000753bf28 clang::TemplateArgument::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x753bf28)
#248 0x000000000757da42 clang::AutoType::Profile(llvm::FoldingSetNodeID&, clang::ASTContext const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x757da42)
#249 0x0000000006f8da5a llvm::ContextualFoldingSet<clang::AutoType, clang::ASTContext&>::NodeEquals(llvm::FoldingSetBase const*, llvm::FoldingSetBase::Node*, llvm::FoldingSetNodeID const&, unsigned int, llvm::FoldingSetNodeID&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6f8da5a)
#250 0x0000000003653297 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x3653297)
#251 0x0000000006fc2cb2 clang::ASTContext::getAutoTypeInternal(clang::QualType, clang::AutoTypeKeyword, bool, bool, clang::ConceptDecl*, llvm::ArrayRef<clang::TemplateArgument>, bool) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc2cb2)
#252 0x0000000006fc3035 clang::ASTContext::getUnconstrainedType(clang::QualType) const (/media/hdd2tb/compiler-explorer/clang-19.1.0/bin/clang-19+0x6fc3035)
#253 0x00000000075315aa (anonymous namespace)::StmtProfilerWithPointers::VisitDecl(clang::Decl const*) StmtProfile.cpp:0:0
#254 0x0000000007536f93 (anonymous namespace)::StmtProfiler::VisitDeclRefExpr(clang::DeclRefExpr const*) StmtProfile.cpp:0:0
#255 0x000000000753244a clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::StmtProfiler, void>::Visit(clang::Stmt const*) StmtProfile.cpp:0:0
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.1.0 (https://github.com/llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /media/hdd2tb/compiler-explorer/clang-19.1.0/bin
clang: note: diagnostic msg: 
********************

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

********************

@Endilll
Copy link
Contributor

Endilll commented Oct 2, 2024

When I feed a local debug build of trunk with the reduction, I consistently get the following diagnostics:

reduced.cpp:8:41: error: deduced non-type template argument does not have the same type as the corresponding template parameter ('auto' vs 'int')
    8 | template < typename, template < auto... > typename >
      |                                         ^
reduced.cpp:40:52: note: template template argument has different template parameters than its corresponding template template parameter
   40 | concept MagnitudeSpec = is_specialization_of_v< T, power_v >;
      |                                                    ^
reduced.cpp:8:52: note: previous template template parameter is here
    8 | template < typename, template < auto... > typename >
      |                      ~~~~~~~~~~~~~~~~~~~~          ^
reduced.cpp:34:33: note: template parameter is declared here
   34 | template < PowerVBase auto, int >
      |                                 ^
reduced.cpp:42:12: error: a concept definition cannot refer to itself
   42 | template < MagnitudeSpec auto... >
      |            ^
reduced.cpp:40:9: note: declared here
   40 | concept MagnitudeSpec = is_specialization_of_v< T, power_v >;
      |         ^
reduced.cpp:56:12: error: a concept definition cannot refer to itself
   56 | template < MagnitudeSpec auto... Ms >
      |            ^
reduced.cpp:40:9: note: declared here
   40 | concept MagnitudeSpec = is_specialization_of_v< T, power_v >;
      |         ^
3 errors generated.

@shafik
Copy link
Collaborator

shafik commented Oct 2, 2024

On godbolt using -O3 and or libc++ makes a difference: https://godbolt.org/z/3jnrWP7qn

It SIGSEGVs

@Endilll
Copy link
Contributor

Endilll commented Oct 2, 2024

On godbolt using -O3 and or libc++ makes a difference: https://godbolt.org/z/3jnrWP7qn

It SIGSEGVs

I guess it runs out of stack like it did for me several comments above

@Endilll
Copy link
Contributor

Endilll commented Oct 3, 2024

Bisected to #92425
CC @sdkrystian as the author.

@shafik
Copy link
Collaborator

shafik commented Oct 3, 2024

Bisected to #92425 CC @sdkrystian as the author.

Also see bc62fb9 which introduced getUnconstrainedType which looks like it is only applied to NTTP.

CC @zygoloid who implemented that patch

@mizvekov
Copy link
Contributor

mizvekov commented Oct 3, 2024

When I feed a local debug build of trunk with the reduction, I consistently get the following diagnostics:
...

That's a separate regression introduced by a recent commit, should be fixed by #110963

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:frontend Language frontend issues, e.g. anything involving "Sema" concepts C++20 concepts needs-reduction Large reproducer that should be reduced into a simpler form regression:19 Regression in 19 release
Projects
None yet
Development

No branches or pull requests

9 participants