[clang] [Clang] prevent null explicit object argument from being deduced (PR #104328)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 15 11:17:26 PDT 2024


================
@@ -4462,6 +4462,9 @@ TemplateDeductionResult Sema::DeduceTemplateArguments(
       ParamTypesForArgChecking.push_back(ParamType);
 
       if (ParamIdx == 0 && HasExplicitObject) {
+        if (ObjectType.isNull())
+          return TemplateDeductionResult::InvalidExplicitArguments;
----------------
mizvekov wrote:

 It is expected from this return code that `Info.Param` will be pointing to the relevant parameter with invalid explicit argument. So you would need something like:
 ```C++
    Info.Param = makeTemplateParameter(TemplateParams->getParam(0));
```


https://github.com/llvm/llvm-project/pull/104328


More information about the cfe-commits mailing list