A more detailed document outlining the history and development of that process can be found here. During the development of Netscape Navigator and Netscape Communicator we learned that developing a cross platform application with shared code was a tremendous undertaking. In order to be able to meet our deadlines and ship the software, this process was developed to ensure daily deliveries to QA and also provide developers a stable development platform on which to develop new features. The verification process was developed in order to deliver builds to QA on a daily basis and ensure that developers had a stable code base with which to develop new features and bug fixes across multiple platforms. This may sound easy, but in reality keeping the source tree building and compiling is a hard task.
Some compilers are rather strict, while other compilers are rather forgiving.
We try to set the error and warning levels to the same as much as possible, but even the settings are implemented differently from compiler to compiler. As a result, code that will happily compile under one compiler will cause another compiler to spew two pages of error warnings or even crash. Code that executes fine under one compiler causes a crash on another compiler because of differences in the implementation of 'int'. Build system differences. As a result, it can be difficult to remember what needs to be done on each platform.