[all-commits] [llvm/llvm-project] 3e512b: [Clang][Concepts] Fix the constraint equivalence c...

Younan Zhang via All-commits all-commits at lists.llvm.org
Mon Sep 23 23:23:00 PDT 2024


  Branch: refs/heads/release/19.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 3e512ba17d90d5ab5382bae61a3e5762d2e3f42a
      https://github.com/llvm/llvm-project/commit/3e512ba17d90d5ab5382bae61a3e5762d2e3f42a
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-09-24 (Tue, 24 Sep 2024)

  Changed paths:
    M clang/lib/Sema/SemaConcept.cpp
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp

  Log Message:
  -----------
  [Clang][Concepts] Fix the constraint equivalence checking involving parameter packs (#102131)

We established an instantiation scope in order for constraint
equivalence checking to properly map the uninstantiated parameters.

That mechanism mapped even packs to themselves. Consequently, parameter
packs e.g. appearing in a function call, were not expanded. So they
would end up becoming `SubstTemplateTypeParmPackType`s that circularly
depend on the canonical declaration of the function template, which is
not yet determined, hence the spurious error.

No release note as I plan to backport it to 19.

Fixes https://github.com/llvm/llvm-project/issues/101735

---------

Co-authored-by: cor3ntin <corentinjabot at gmail.com>
(cherry picked from commit e6974daa7bc100c8b88057d50f3ec3eca7282243)



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