[clang] [Sema] Diagnose use of if/else-if condition variable inside else-if/else branch(s) (PR #156436)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 3 13:22:44 PDT 2025
================
@@ -2371,6 +2371,24 @@ NonOdrUseReason Sema::getNonOdrUseReasonInCurrentContext(ValueDecl *D) {
return NOUR_None;
}
+bool Sema::isConditionVarReference(const DeclRefExpr *DRE) {
+ if (!DRE)
+ return false;
+
+ const VarDecl *VD = dyn_cast<VarDecl>(DRE->getDecl());
+
+ if (!VD)
+ return false;
+
+ for (Scope *S = getCurScope(); S; S = S->getParent()) {
+ if (VarDecl *CV = S->getConditionVar())
+ if (VD == CV)
----------------
arrowten wrote:
In the 5th testcase, I could see that it is returning `true` for `VarX->getType() == VarY->getType()' in `isSameEntity`.
https://github.com/llvm/llvm-project/pull/156436
More information about the cfe-commits
mailing list