Short story:
To make delta debugging more useful, gcc's
STL system headers should all compile without
warnings at the highest error checking level
without the use of hardcoded warning suppressions in the compiler
based on whether the code is in a system header or not
(see http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00049.html
for an example of such a suppression).

Long story:
Recently I ran into a crash bug in generated code.
It was a little hard to figure out, so I
decided to try delta debugging
(http://www.cs.berkeley.edu/~dsw/)
to automatically generate a small testcase.
We turned delta loose on the 500KB preprocessed
source, with -Wall -Werror to help make sure it
didn't generate garbage programs,
and it faithfully hacked it down to 8KB
which crashed in the same way.  Only problem was,
because we left the #line directives in the
preprocessed source, and delta selectively
removed some of them, gcc thought that our
entire test case was in a system header.
As a result of the DECL_IN_SYSTEM_HEADER warning
suppressions, when delta generated garbage,
gcc couldn't tell delta it had done so.

Reply via email to