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

Younan Zhang via All-commits all-commits at lists.llvm.org
Sun Aug 25 23:30:47 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6974daa7bc100c8b88057d50f3ec3eca7282243
      https://github.com/llvm/llvm-project/commit/e6974daa7bc100c8b88057d50f3ec3eca7282243
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-08-26 (Mon, 26 Aug 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>



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