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.