]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
analyzer: better fix for -Wanalyzer-use-of-uninitialized-value [PR106573]
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 29 Mar 2023 18:16:46 +0000 (14:16 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 29 Mar 2023 18:16:46 +0000 (14:16 -0400)
Cherrypicked from r13-2053-gca123e019bb92f.

gcc/analyzer/ChangeLog:
PR analyzer/106573
* region-model.cc (region_model::on_call_pre): Use check_call_args
when ensuring that we call get_arg_svalue on all args.  Remove
redundant call from handling for stdio builtins.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/region-model.cc

index f4c05baf60e8be96796b0bd60bb5b64278c970a3..bfee042c08fbc606865ca1f4d17eb5bd1e078ceb 100644 (file)
@@ -1359,8 +1359,7 @@ region_model::on_call_pre (const gcall *call, region_model_context *ctxt,
      duplicates if any of the handling below also looks up the svalues,
      but the deduplication code should deal with that.  */
   if (ctxt)
-    for (unsigned arg_idx = 0; arg_idx < cd.num_args (); arg_idx++)
-      cd.get_arg_svalue (arg_idx);
+    check_call_args (cd);
 
   /* Some of the cases below update the lhs of the call based on the
      return value, but not all.  Provide a default value, which may
@@ -1477,7 +1476,6 @@ region_model::on_call_pre (const gcall *call, region_model_context *ctxt,
            /* These stdio builtins have external effects that are out
               of scope for the analyzer: we only want to model the effects
               on the return value.  */
-           check_call_args (cd);
            break;
          }
       else if (is_named_call_p (callee_fndecl, "malloc", call, 1))