------- Additional Comments From sacolcor at provide dot net 2005-03-18 20:57 ------- I'm working on it, but it may take me a where to track it down to a minimal case.
You're correct in that this is legal behavior for a conforming compiler; the actual "core" problem is that because gcc (and most other compilers) #includes some standard headers in others, it's possible to write code that is invalid (because it does not #include all of the necessary headers) but have it still compile without a diagnostic. Thus, it breaks when moved to a compiler with a different internal library header configuration. In this case, the change was the debug header rework performed between v3.3.2 and v3.4.0. It was the obvious "temporary" label on that line that led me to believe that it was erroneous; if it needs to stay there, it probably shouldn't be tagged that way (or should indicate what its intended lifetime is). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20534