Internal Compiler Errors & Minimal Rebuilds
Here is a description of
a problem I recently had trying to compile a sample program from the Boost library.
Here is a suggestion that contained the
correct work-around:
I believe this is significant for 2 reasons:
- The compiler should give a decent error message of what it wasn't able to parse, it shouldn't simply say "Internal Compiler Error (x_x)".
- The Boost library is apparently mature enough to warrant consideration for parts of it for inclusion into the C++ standard. That means the library & its samples should definitely be considered for VC++'s unit tests!
If the error described has already been fixed for Visual C++ 2005 (v8?), then that's cool, although I wish this behavior was documented somewhere. My question is: where do I go to report Visual C++ bugs? Thanks in advance
(Before posting, I searched for "internal compiler error minimal rebuild" (minus quotes), but nothing came up...)
Internal compiler errors are problems in the compiler when it gets into an inconsistent state and bails. In theory we should never have an ICE, as those are bugs in the compiler, but unfortunately any software this complex will have them, although they are few and far between in VC8.
Boost is part of our tests, although it sounds as if the particular version of Boost that you hit the ICE with may have been different when we shipped VC7.1.
We have done a lot of work in VC8, and I wouldn't be surprised if it was fixed. You can file bugs directly into our bug database at:
http://lab.msdn.microsoft.com/productfeedback/
Thanks!
Kang Su Gatlin
Visual C++ Program Manager
I'm glad to hear that boost is part of your tests.
In my experience there are a number of issues with using boost library in large scale projects with versions 6, 7.0, 7.1 and 8.0
Normally these are related to the use of precompiled headers and incremental builds. Periodically, for example, the compiler will insist that boost::ref is not a memebr of boost when it most certainly is. If I turn off precompiled headers the problem goes away. If I compile the same code on Intel C++ or Gnu C++ the problem goes away.
Since, as you appear to agree, boost is very important to C++ developers it would be a good idea to bolster the existing tests to cover precompiled header configurations and incremental builds.
The C++ compiler is coming along in leaps and bounds in many respects. Elimination of strange incremental build issues would relieve much frustration.