ABSTRACT

The incorrect behavior of some tools is less serious than the incorrect behavior of others. Most development tools are bought-in, rather than being produced within the company using them. If a tool has been suitably qualified by the vendor, then this reduces, but does not eliminate, the work required by the user of the tool, who has the responsibility of ensuring that it works correctly and that all bugs are analyzed for their impact on the project. The bugs that the national physical laboratory tool found in the gccgcc compiler were in code constructions so complex that they would never have been written by a human programmer. A fault that caused a compiler to produce incorrect output code when the terminating value of a loop was 627 is less likely to be spotted, and could be extremely dangerous for those few programs with such a loop.