[clang] [Sema] Fix -Wunreachable-code false negative when operands differ only by implicit casts (PR #149972)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 23 06:07:57 PDT 2025


================
@@ -1160,8 +1160,11 @@ class CFGBuilder {
       return {};
 
     // Check that it is the same variable on both sides.
-    if (!Expr::isSameComparisonOperand(DeclExpr1, DeclExpr2))
-      return {};
+    if (!Expr::isSameComparisonOperand(DeclExpr1, DeclExpr2)) {
+      if (!Expr::isSameComparisonOperand(DeclExpr1->IgnoreParenImpCasts(),
+                                         DeclExpr2->IgnoreParenImpCasts()))
+        return {};
----------------
AaronBallman wrote:

This doesn't seem correct to me; `isSameComparisonOperand` explicitly handles implicit cast expressions, so stripping them off here seems like the wrong place to handle this.

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


More information about the cfe-commits mailing list