Weird result for modulus operation
Paolo Bonzini
bonzini@gnu.org
Wed Apr 30 08:55:00 GMT 2008
Ang Way Chuang wrote:
> Ang Way Chuang wrote:
>> Andrew Pinski wrote:
>>> On Tue, Apr 29, 2008 at 9:08 PM, Ang Way Chuang <wcang@nav6.org> wrote:
>>>> Thanks for the speedy reply. But why this code:
>>>>
>>>> int a = 17, b = 16;
>>>> a = a++ % 16;
>>>>
>>>> results in a = 2 then? I think I need to know what is sequence
>>>> point. I'll
>>>> google that.
>>>
>>> As I mentioned, the code is undefined so it could be any value.
>>
>> Is there any flag in gcc that can provide warning to code that relies
>> on undefined behaviours?
>
> Found it. -Wsequence-point which is enabled by -Wall. But gcc didn't
> fart out any warning with -Wall or -Wsequence-point flag :(
You found a bug, it does point out the problem with the second example here.
Paolo
More information about the Gcc
mailing list