[clang] [clang] Fix crash in concept deprecation (PR #98622)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 17 11:23:17 PDT 2024


================
@@ -6308,11 +6308,11 @@ TypeResult Sema::ActOnTypeName(Declarator &D) {
     CheckExtraCXXDefaultArguments(D);
   }
 
-  if (const AutoType *AutoT = T->getAs<AutoType>())
-    CheckConstrainedAuto(
-        AutoT,
-        TInfo->getTypeLoc().getContainedAutoTypeLoc().getConceptNameLoc());
-
+  if (const AutoType *AutoT = T->getAs<AutoType>()) {
+    AutoTypeLoc Loc = TInfo->getTypeLoc().getContainedAutoTypeLoc();
+    CheckConstrainedAuto(AutoT,
+                         Loc ? Loc.getConceptNameLoc() : SourceLocation());
+  }
----------------
mizvekov wrote:

These still have the same issue, but I don't understand why we need this check here.

We obviously can't write stuff like
```C++
using X = auto;
```

So I am missing in what case undeduced auto can appear here, except the weird deleted function error recovery issue.

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


More information about the cfe-commits mailing list