[clang] [Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base classes (PR #84050)

Krystian Stasiowski via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 5 07:46:40 PDT 2024


================
@@ -1055,9 +1045,19 @@ Sema::BuildMemberReferenceExpr(Expr *BaseExpr, QualType BaseExprType,
       }
     }
 
-    Diag(R.getNameLoc(), diag::err_no_member)
-      << MemberName << DC
-      << (BaseExpr ? BaseExpr->getSourceRange() : SourceRange());
+    if (SS.isNotEmpty() && !DC) {
+      Diag(R.getNameLoc(), diag::err_undeclared_use)
+          << MemberName << SS.getRange();
+    } else if (DC) {
+      Diag(R.getNameLoc(), diag::err_no_member)
+          << MemberName << DC
+          << (BaseExpr ? BaseExpr->getSourceRange() : SourceRange());
+    } else {
+      // FIXME: Is this needed?
----------------
sdkrystian wrote:

Yup, I will be addressing this shortly 

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


More information about the cfe-commits mailing list