[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
Sat Oct 4 06:29:23 PDT 2025


================
@@ -13660,10 +13594,11 @@ def warn_acc_var_referenced_lacks_op
               "reference has no effect">,
       InGroup<DiagGroup<"openacc-var-lacks-operation">>,
       DefaultError;
+def warn_out_of_scope_var_usage
+    : Warning<"variable %0 declared in 'if' block is always false or null here">,
+      InGroup<DiagGroup<"conditional-scope">>;
----------------
arrowten wrote:

@erichkeane Correct me if I am wrong.
In here, this is the current scenario
```
if (int *ptr = get_something()) {  
  return ptr[0];                        
}
else if (int *ptr2 = get_something_else()) {  
  return ptr[0] * ptr2[0];          //warns for ptr
}
else if (int *ptr3 = get_something_else_again()) { 
  return ptr[0] * ptr2[0] * ptr3[0];               // warns for ptr and ptr2
}
else if (int *ptr4 = get_something_else_again_now()) { 
  return ptr[0] * ptr2[0] * ptr3[0] * ptr4[0];          // warns for ptr, ptr2 and ptr3
}
```

It should warn for something else too?

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


More information about the cfe-commits mailing list