This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: how to make gcc warn about arithmetic signed overflow
- From: Dave Allured - NOAA Affiliate <dave dot allured at noaa dot gov>
- To: gcc-help at gcc dot gnu dot org
- Date: Mon, 23 Sep 2013 13:38:09 -0600
- Subject: Re: how to make gcc warn about arithmetic signed overflow
- Authentication-results: sourceware.org; auth=none
- References: <20130921164609 dot GC3086 at a dot lan> <CAH6eHdTToM+TMy55m5HYo39DC8nA0RrTma1Bp5OnhUtPErMfOA at mail dot gmail dot com> <20130921174229 dot GD3086 at a dot lan> <CAH6eHdQzJNQY4Meysi259RheSaGscKUF28OW43OvOD1rf6FkxQ at mail dot gmail dot com> <20130923000355 dot fa2a964c dot jklowden at schemamania dot org>
On Sun, Sep 22, 2013 at 10:03 PM, James K. Lowden
<jklowden@schemamania.org> wrote:
> Regarding the OP's query
>
>> > int r = ab * bc;
>
> although the provided example is simple enough, it's the compiler's
> job is to generate object code, not to do static analysis.
>
> Even if the values are const, in the general case they could be
> modified by another module or another thread. The compiler simply
> doesn't have enough information to warn of every runtime overflow.
I believe the CPU overflow flag is updated after most integer
arithmetic instructions. Does GCC have any facility for checking this
flag after each integer operation? This would be a runtime check, of
course, not a compile time check.
--Dave