]> gcc.gnu.org Git - gcc.git/commit
middle-end/104492 - avoid all equality compare dangling pointer diags
authorRichard Biener <rguenther@suse.de>
Mon, 25 Apr 2022 08:46:16 +0000 (10:46 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 27 Apr 2022 10:03:07 +0000 (12:03 +0200)
commit9aaaae7edb781867797d0a553a7db99d52ecd5e1
tree31b7f5aef1f0ff13e4d619f74b9a00a3bf230710
parent6a460a2007dd9c527c5f9d5bbbedb852db7c1373
middle-end/104492 - avoid all equality compare dangling pointer diags

The following extends the equality compare dangling pointer diagnostics
suppression for uses following free or realloc to also cover those
following invalidation of auto variables via CLOBBERs.  That avoids
diagnosing idioms like

  return std::find(std::begin(candidates), std::end(candidates), s)
           != std::end(candidates);

for auto candidates which are prone to forwarding of the final
comparison across the storage invalidation as then seen by the
late run access warning pass.

2022-04-25  Richard Biener  <rguenther@suse.de>

PR middle-end/104492
* gimple-ssa-warn-access.cc
(pass_waccess::warn_invalid_pointer): Exclude equality compare
diagnostics for all kind of invalidations.
(pass_waccess::check_dangling_uses): Fix post-dominator query.
(pass_waccess::check_pointer_uses): Likewise.
gcc/gimple-ssa-warn-access.cc
This page took 0.062271 seconds and 5 git commands to generate.