================
@@ -185,12 +185,13 @@ enum class TemplateSubstitutionKind : char {
return !(*this)(Depth, Index).isNull();
}
- bool isAnyArgInstantiationDependent() const {
+ bool isAnyArgInstantiationDependent(const ASTContext &C) const {
for (ArgumentListLevel ListLevel : TemplateArgumentLists)
for (const TemplateArgument &TA : ListLevel.Args)
// There might be null template arguments representing unused
template
// parameter mappings in an MLTAL during concept checking.
- if (!TA.isNull() && TA.isInstantiationDependent())
+ if (!TA.isNull() &&
+ C.getCanonicalTemplateArgument(TA).isInstantiationDependent())
----------------
zyn0217 wrote:
For context, we have been feeding canonical template arguments in concept
checking for a long time, and we were essentially checking
instantiation-dependency on those canonical arguments. The normalization patch
changed that behavior, and we are now using sugar. (I did not invert that
change because I think preserving sugar is the goal we always pursue.)
https://github.com/llvm/llvm-project/pull/183010
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits