[clang] [Clang][Sema] Reject array prvalue operands (PR #140702)

via cfe-commits cfe-commits at lists.llvm.org
Tue May 20 03:03:20 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp -- clang/lib/Sema/SemaExpr.cpp clang/test/CXX/expr/p8.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 6b1704a10..62386d80c 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -11333,8 +11333,10 @@ QualType Sema::CheckAdditionOperands(ExprResult &LHS, ExprResult &RHS,
   if (!IExp->getType()->isIntegerType())
     return InvalidOperands(Loc, LHS, RHS);
 
-  if (OriginalOperand Orig(PExp); Orig.getType()->isArrayType() && Orig.Orig->isPRValue()) {
-    Diag(Loc, diag::err_typecheck_array_prvalue_operand) << PExp->getSourceRange();
+  if (OriginalOperand Orig(PExp);
+      Orig.getType()->isArrayType() && Orig.Orig->isPRValue()) {
+    Diag(Loc, diag::err_typecheck_array_prvalue_operand)
+        << PExp->getSourceRange();
     return QualType();
   }
 
@@ -11435,12 +11437,16 @@ QualType Sema::CheckSubtractionOperands(ExprResult &LHS, ExprResult &RHS,
   }
 
   OriginalOperand OrigLHS(LHS.get()), OrigRHS(RHS.get());
-  bool LHSArrayPRV = OrigLHS.getType()->isArrayType() && OrigLHS.Orig->isPRValue();
-  bool RHSArrayPRV = OrigRHS.getType()->isArrayType() && OrigRHS.Orig->isPRValue();
+  bool LHSArrayPRV =
+      OrigLHS.getType()->isArrayType() && OrigLHS.Orig->isPRValue();
+  bool RHSArrayPRV =
+      OrigRHS.getType()->isArrayType() && OrigRHS.Orig->isPRValue();
   if (LHSArrayPRV || RHSArrayPRV) {
-    auto&& diag = Diag(Loc, diag::err_typecheck_array_prvalue_operand);
-    if (LHSArrayPRV) diag << LHS.get()->getSourceRange();
-    if (RHSArrayPRV) diag << RHS.get()->getSourceRange();
+    auto &&diag = Diag(Loc, diag::err_typecheck_array_prvalue_operand);
+    if (LHSArrayPRV)
+      diag << LHS.get()->getSourceRange();
+    if (RHSArrayPRV)
+      diag << RHS.get()->getSourceRange();
     return QualType();
   }
 
@@ -15856,8 +15862,10 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc,
     resultType = Context.DependentTy;
   } else {
     if (Opc == UO_Deref || Opc == UO_Plus) {
-      if (auto *expr = Input.get(); expr->getType()->isArrayType() && expr->isPRValue()) {
-        Diag(OpLoc, diag::err_typecheck_array_prvalue_operand) << expr->getSourceRange();
+      if (auto *expr = Input.get();
+          expr->getType()->isArrayType() && expr->isPRValue()) {
+        Diag(OpLoc, diag::err_typecheck_array_prvalue_operand)
+            << expr->getSourceRange();
         return ExprError();
       }
     }

``````````

</details>


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


More information about the cfe-commits mailing list