[clang] [Clang] Add diagnostic when scoped enumeration requires an explicit conversion for binary operations (PR #152698)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 15 06:36:47 PDT 2025


================
@@ -10742,9 +10742,53 @@ static void DiagnoseBadDivideOrRemainderValues(Sema& S, ExprResult &LHS,
                             << IsDiv << RHS.get()->getSourceRange());
 }
 
+static void diagnoseScopedEnums(Sema &S, const SourceLocation Loc,
+                                const ExprResult &LHS, const ExprResult &RHS,
+                                BinaryOperatorKind Opc) {
+  const Expr *LHSExpr = LHS.get();
+  const Expr *RHSExpr = RHS.get();
+  if (!LHSExpr || !RHSExpr)
----------------
erichkeane wrote:

Instead of this, do:

`if (!LHS.isUsable() || !RHS.isUsable())` above the .get calls.

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


More information about the cfe-commits mailing list