Re: Re: x = ++x + ++x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Diego Novillo wrote:
On 2/15/08 8:43 AM, Eljay Love-Jensen wrote:

Any guidance as to how I could accomplish this feat with GCC?

The code that checks for these sequence point problems in the C parser is in c-common.c:warn_for_collisions. You could do one of two things:

- Change the warning() call to error() or pedwarn() (so -pedantic causes a compilation failure).

- Modify warn_for_collisions to return an indicator so the caller can insert a call to abort() to cause the program to fail at runtime.


In principle, for GCC >= 4.2, there is no need to modify GCC or even read the source code. You could use -fdiagnostics-show-option to find out which option generated the warning (my guess -Wsequence-point). Then, you can use -Werror=sequence-point to convert warnings generated by that option into an error and -Wfatal-errors to make the error fatal.

However, there is a bug here (any warning that is enabled/disabled by a switch but does not show that switch with -fdiagnostics-show-option is a bug). It is a trivial fix, so I hope I can sneak it into GCC 4.3.

Cheers,

	Manuel.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux