[all-commits] [llvm/llvm-project] 8b7dc4: [clang] Fix issue with FoldingSet and DependentTem...

premanandrao via All-commits all-commits at lists.llvm.org
Fri Jul 25 12:21:51 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8b7dc4cadb622e2b4a13155bffa5cec8c8fb6b8b
      https://github.com/llvm/llvm-project/commit/8b7dc4cadb622e2b4a13155bffa5cec8c8fb6b8b
  Author: premanandrao <premanand.m.rao at intel.com>
  Date:   2025-07-25 (Fri, 25 Jul 2025)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Type.h
    M clang/lib/AST/ASTContext.cpp
    A clang/test/Parser/dep_template_spec_type.cpp

  Log Message:
  -----------
  [clang] Fix issue with FoldingSet and DependentTemplateSpecialization… (#150559)

…Type

PR #118288 fixed a re-entrancy issue with the usage of `FoldingSet` and
`AutoType`. The following test case (reduced with `creduce` by
@Fznamznon):

```
template <typename C, typename S1, int rbits>
typename C::A Bar(const S1& x, const C& c = C()) {
    using T = typename C::A;
    T result;

    using PreC = typename C::template boop<T::p + rbits>;
    using ExactC = typename C::template bap<PreC::p + 2>;

    using D = typename ExactC::A;

    return result;
}
```

shows a similar non-deterministic recursion with the use of `FoldingSet`
but with `DependentTemplateSepcializationType`. A nearly identical fix
is needed here too.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list