[all-commits] [llvm/llvm-project] 360176: [clang] fix P3310 overload resolution flag propaga...

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Tue Feb 4 05:14:17 PST 2025


  Branch: refs/heads/users/mizvekov/clang-fix-P3310-strict-match-incomplete-types
  Home:   https://github.com/llvm/llvm-project
  Commit: 360176c6a93f68e35de234865c0d57403c35b77f
      https://github.com/llvm/llvm-project/commit/360176c6a93f68e35de234865c0d57403c35b77f
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2025-02-04 (Tue, 04 Feb 2025)

  Changed paths:
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/AST/ast-dump-templates.cpp
    M clang/test/AST/gen_ast_dump_json_test.py
    M clang/test/SemaTemplate/cwg2398.cpp

  Log Message:
  -----------
  [clang] fix P3310 overload resolution flag propagation

Class templates might be only instantiated when they are required
to be complete, but checking the template args against the primary
template is immediate.

This result is cached so that later when the class is instantiated,
checking against the primary template is not repeated.

The 'MatchedPackOnParmToNonPackOnArg' flag is also produced upon
checking against the primary template, so it needs to be cached
in the specialziation as well.

This fixes a bug which has not been in any release, so there are no
release notes.

Fixes #125290



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