This is the mail archive of the
mailing list for the GCC project.
Re: Counter intuitively, asserts hurt gcc static dataflow analysis.
- From: Florian Weimer <fw at deneb dot enyo dot de>
- To: John Carter <john dot carter at taitradio dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Fri, 04 May 2018 16:20:08 +0200
- Subject: Re: Counter intuitively, asserts hurt gcc static dataflow analysis.
- References: <CAFD1m3FNaL4_T=hwUSi6Li+8P3+WiV8jL=2H_QuziqsE2MX6Ug@mail.gmail.com>
* John Carter:
> But compile with ...
> gcc -O3 -W -Wall -Wextra -o a a.c
> ...now results in NO warnings!
> ie. Although gcc _knows_ the assert _will_ trigger at run time... it can't
> tell me at compile time anymore.
> ie. Counter intuitively, adding asserts and error checks to my code has
> made me less safe.
In glibc, we could warn if the assert expression is constant and
false. But I'm worried that this will produce lots and lots of false
positives after inlining, loop unrolling, and other optimizations.
Has anyone tried something like this?