There are many benefits of this organization. One that is
particularly important for GCC is regression
testing.[60] Because most
of the various intermediate formats are textual, deviations from
expected results in a regression test are easily spotted and analyzed
using simple textual diff operations on the intermediate results;
there is no need for specialist dump-analysis tools that may well
harbor their own bugs, and in any case would represent an additional
maintenance burden.
The design pattern to extract from this example is that the
driver program has monitoring switches that merely (but sufficiently)
expose the textual data flows among the components. As with
fetchmail's-v option,
these options are not afterthoughts; they are designed in for
discoverability.
[an error occurred while processing this directive]