lime added a comment. I'm wondering whether classes like `TemplateArgumentLoc` could refer to the template head of the `TemplateArgument`, so the comparison of parameter mappings could be modified, and then the refered variable could be accepted.
================ Comment at: clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp:43 + +S4<X> s41; +S4<Y> s42; ---------------- This variable was rejected after rebasing the patch on D126907. The reason is that the atomic constraint generated from `S4` is not considered to subsume the one generated from `X`. And the difference between two atomic constraints is mainly the template arguments. If the concept `C` was like `template <typename> concept C = true`, this variable would be accepted. A reasonable behavior might be either accepting the variable regardless of whether the constraint expression depends on template arguments, or rejecting the variable as the template heads of `S4` and `X` are not equivalent. Both GCC and MSVC accept the variable. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134128/new/ https://reviews.llvm.org/D134128 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits