llvm-project
8b7dc4ca - [clang] Fix issue with FoldingSet and DependentTemplateSpecialization… (#150559)

Commit
66 days ago
[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.
Author
Parents
Loading