================
@@ -11322,9 +11322,22 @@ Decl 
*Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) {
       << ClassType << ConvType;
   }
 
-  if (FunctionTemplateDecl *ConversionTemplate
-                                = Conversion->getDescribedFunctionTemplate())
+  if (FunctionTemplateDecl *ConversionTemplate =
+          Conversion->getDescribedFunctionTemplate()) {
+    if (ConvType->isUndeducedAutoType()) {
+      Diag(Conversion->getTypeSpecStartLoc(), diag::err_auto_not_allowed)
+          << Conversion->getTypeSourceInfo()
+                 ->getTypeLoc()
+                 .getContainedAutoTypeLoc()
----------------
Endilll wrote:

I went this way mostly because I didn't want `const` qualifier on the member 
function to be highlighted, as it's not relevant. But it's getting a bit worse 
than this if we go your way:
```
    4 |   operator const auto() const { return 1.2; }     // error: conversion 
function template
      |                  ^~~~~~~~~~~~
    6 |   operator decltype(auto)() const { return 1.2; }     // error: 
conversion function template
      |            ^~~~~~~~~~~~~~~~~~~~~~
```

https://github.com/llvm/llvm-project/pull/78103
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to