> On 23-Aug-2021, at 2:20 PM, Martin Liška <mli...@suse.cz> wrote:
> 
> On 8/23/21 10:10, Martin Liška wrote:
>> On 8/20/21 18:47, David Malcolm via Gcc-patches wrote:
>>> On Fri, 2021-08-20 at 21:55 +0530, Ankur Saini wrote:
>>>> The patch fixes the test failures introduced by :
>>>> 
>>>> aef703cf982072427e74034f4c460a11c5e04b8e
>>>> 1b34248527472496ca3fe2a07183beac8cf69041
>>>> 
>>>> Thanks
>>>> - Ankur
>>> 
>>> Thanks for fixing this.
>>> 
>>> The patch looks OK, apart from some minor whitespace issues - I think
>>> it's using spaces rather than tabs, as columns aren't lining up as
>>> expected in some places.  (does your code editor support visualizing
>>> whitespace and support GNU indentation styles?).
>>> 
>>> Ideally these nits should be fixed - but assuming this passes bootstrap
>>> it's OK to push to trunk (and don't try to fix indentation in places
>>> where it's already broken; best to focus on fixing the test suite).
>>> 
>>> Dave
>>> 
>>> 
>> Hello.
>> I noticed the patch leads to the following Clang warning:
>> build/gcc/analyzer/diagnostic-manager.cc:2108:21: warning: variable 
>> 'caller_var' is used uninitialized whenever 'if' condition is false 
>> [-Wsometimes-uninitialized]
>> Is it something we should handle? Or a false positive?
>> Thanks,
>> Martin
> 
> And it likely caused https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102020.

Yes, you are right, there is a typo in in 
gcc/analyzer/diagnostic-manager.cc:2113 which should be changed to something 
like this :

- - -
diff --git a/gcc/analyzer/diagnostic-manager.cc 
b/gcc/analyzer/diagnostic-manager.cc
index 89b5d1e3c3c..77dda4d2768 100644
--- a/gcc/analyzer/diagnostic-manager.cc
+++ b/gcc/analyzer/diagnostic-manager.cc
@@ -2110,7 +2110,7 @@ diagnostic_manager::prune_for_sm_diagnostic (checker_path 
*path,
                    = cg_superedge.map_expr_from_callee_to_caller (callee_var,
                                                                    &expr);
                 else
-                  callee_var = callee_model->get_representative_tree (sval);
+                 caller_var = caller_model->get_representative_tree (sval);
               }
             else
              caller_var = caller_model->get_representative_tree (sval);
- - -

But maybe the fail is not due to this typo, as ideally the analyzer should not 
enter that else statement in this case.

I see DejaGnu reporting a failing test ( with excess errors ) at line 72 but no 
test for failing or passing "test for warnings” there, even though there is a 
{dg-warning "double-'free’”} on line 72.

Thank you
- Ankur

Reply via email to