[clang] [clang-tools-extra] [Clang] Implement CWG2813: Class member access with prvalues (PR #95112)

via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 17 06:29:46 PDT 2024


================
@@ -222,17 +222,17 @@ static bool DiagnoseNoDiscard(Sema &S, const WarnUnusedResultAttr *A,
   return S.Diag(Loc, diag::warn_unused_result_msg) << A << Msg << R1 << R2;
 }
 
-void Sema::DiagnoseUnusedExprResult(const Stmt *S, unsigned DiagID) {
-  if (const LabelStmt *Label = dyn_cast_or_null<LabelStmt>(S))
-    return DiagnoseUnusedExprResult(Label->getSubStmt(), DiagID);
-
-  const Expr *E = dyn_cast_or_null<Expr>(S);
-  if (!E)
-    return;
+static void DiagnoseUnused(Sema &S, const Expr *E,
+                           std::optional<unsigned> DiagID) {
+  // When called from Sema::DiagnoseUnusedExprResult, DiagID is a diagnostic for
+  // where this expression is not used. When called from
+  // Sema::DiagnoseDiscardedNodiscard, DiagID is std::nullopt and this function
+  // will only diagnose [[nodiscard]], [[gnu::warn_unused_result]] and similar
----------------
cor3ntin wrote:

@MitalAshok ping again :)

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


More information about the cfe-commits mailing list