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

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Mon Feb 3 18:32:40 PST 2025


  Branch: refs/heads/users/mizvekov/clang-fix-P3310-strict-match-incomplete-types
  Home:   https://github.com/llvm/llvm-project
  Commit: 06c3ccf38bc580adbb5feb3fc380bf4f4cf1201d
      https://github.com/llvm/llvm-project/commit/06c3ccf38bc580adbb5feb3fc380bf4f4cf1201d
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2025-02-03 (Mon, 03 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