[all-commits] [llvm/llvm-project] 22ed92: [clang] preserve sugar on initializer_list deduction
Matheus Izvekov via All-commits
all-commits at lists.llvm.org
Tue Apr 15 22:45:08 PDT 2025
Branch: refs/heads/users/mizvekov/dependent-elab-keyword-fixes
Home: https://github.com/llvm/llvm-project
Commit: 22ed921344149880d7163d2d2f1cea4b8409fef3
https://github.com/llvm/llvm-project/commit/22ed921344149880d7163d2d2f1cea4b8409fef3
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-04-16 (Wed, 16 Apr 2025)
Changed paths:
M clang/include/clang/AST/Type.h
M clang/lib/AST/Type.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/CXX/drs/cwg23xx.cpp
Log Message:
-----------
[clang] preserve sugar on initializer_list deduction
Commit: fae0bd939ace216ed0eefd05d12b574dc59d8225
https://github.com/llvm/llvm-project/commit/fae0bd939ace216ed0eefd05d12b574dc59d8225
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2025-04-16 (Wed, 16 Apr 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/TypeLoc.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaInit.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/test/Analysis/anonymous-decls.cpp
M clang/test/SemaTemplate/dependent-template-recover.cpp
M clang/test/SemaTemplate/elaborated-type-specifier.cpp
M clang/test/SemaTemplate/typename-specifier-3.cpp
Log Message:
-----------
[clang] Fix elaborated keyword canonicalization.
DependentNameType and DependentSpecializationType had
disagreeing rules for canonicalization of the keyword:
* DependentNameType considered all keyword kinds canonical;
even explicit vs implicit typename.
* DepednentSpecializationType otherwise considered explicit vs
implicit typename as equivalent.
Both nodes are changed to treat both keywords as equivalent.
Moreover, class and struct keywords are functionally equivalent,
so relying on their equivalence was IFNDR in any case.
We change it to treat them as equivalent, as at least that disallows
overloading, which is diagnosable.
This patch also considers a few drive by fixes to preservation
of the presence / abscence of the typename keyword, and improves
a few assertions in that area.
Also improves preservervation of sugar on initializer_list deduction
in order to avoid a few changes in diagnostics.
Compare: https://github.com/llvm/llvm-project/compare/22ed92134414%5E...fae0bd939ace
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