public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug analyzer/99671] New: RFE: analyzer could complain about ptr derefs that occur before the ptr is checked
@ 2021-03-19 15:03 dmalcolm at gcc dot gnu.org
  2022-11-09 14:00 ` [Bug analyzer/99671] " dmalcolm at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-03-19 15:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99671

            Bug ID: 99671
           Summary: RFE: analyzer could complain about ptr derefs that
                    occur before the ptr is checked
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

See e.g. bug 80049, where we have code of the form


  expr = p->field;
  [...]
  if (p) ...

We could complain that 'p' has already been dereferenced before the check.
This might be implementable using sm-malloc: the "p->field" dereference
transitions "p" to non-null, and we could thus complain at the "if (p)" on
non-null if the transition was due to such a transition (rather than being
known to be non-null) - or perhaps a new state "assumed-non-null"?

PVS Studio complains about this:
  https://www.viva64.com/en/w/v595/
  https://www.viva64.com/en/examples/v595/
using CWE 476:
  https://cwe.mitre.org/data/definitions/476.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-11-28 22:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-19 15:03 [Bug analyzer/99671] New: RFE: analyzer could complain about ptr derefs that occur before the ptr is checked dmalcolm at gcc dot gnu.org
2022-11-09 14:00 ` [Bug analyzer/99671] " dmalcolm at gcc dot gnu.org
2022-11-09 22:26 ` dmalcolm at gcc dot gnu.org
2022-11-10 18:31 ` cvs-commit at gcc dot gnu.org
2022-11-10 18:49 ` dmalcolm at gcc dot gnu.org
2022-11-28 22:18 ` pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).