This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: warning: operation on 'zero' may be undefined
- From: Paul Brook <paul at codesourcery dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Mathieu Malaterre <mmalater at nycap dot rr dot com>
- Date: Fri, 1 Oct 2004 04:11:54 +0100
- Subject: Re: warning: operation on 'zero' may be undefined
- Organization: CodeSourcery
- References: <415CC788.8030608@nycap.rr.com>
On Friday 01 October 2004 03:57, Mathieu Malaterre wrote:
> Hello,
>
> I am trying gcc4, and turning -Wall reveal a strange warning:
>
> int main()
> {
> int zero = 125;
> zero = (++zero)%3;
> }
>
> g++ -Wall foo.cxx
>
> foo.cxx: In function `int main()':
> foo.cxx:4: warning: operation on 'zero' may be undefined
>
> What does this mean ?
You incrementing and assigning to the same variable in one statement, which
invokes undefined behaviour.
The code you wrote can be interpreted as
zero = zero%3;
or
zero = (zero % 3) + 1
or possibly even something entirely different.
Paul