Bug 518506 comment 43 pointed out that an initialized declaration in the
conditional of a for statement, added in that bug, confused VC7.1.
AFAIK this is valid ISO C++, since at least 1998, but
says that mozilla-central and mozilla-1.9.2 (should) build with VC7.1.
(We don't support jemalloc with VC7.1, but that and VC8 may be the reason why
jemalloc is off by default with msvc.
Neil, do you know whether this is the only problem when compiling with VC7.1?
I'm assuming this caused a compiler error.
Do you know whether there is a good way to un-confuse VC7.1?
I guess the only option is to move the declaration outside the loop?
(Out of interest, I guess the same problem would happen with
if, while, and switch statements?)
(In reply to comment #0)
> Neil, do you know whether this is the only problem when compiling with VC7.1?
Actually some of tracemonkey doesn't compile with VC7.1, although there is a pending review (for some time now, so probably bitrotted...) I can't remember any other problems offhand.
> Do you know whether there is a good way to un-confuse VC7.1?
> I guess the only option is to move the declaration outside the loop?
That's what I did to get it to compile locally.
> (Out of interest, I guess the same problem would happen with
> if, while, and switch statements?)
Apparently VC7.1 understands initialized declarations in while-loop
and maybe in if-statements
(I don't see any in switch-statements.)
BTW, there is a similar initialized declaration in a for-loop conditional
introduced after Neil's patches in bug 513909
Created attachment 420442 [details] [diff] [review]
This is easy to fix, so let's fix. Other options are declaring otherRect
(uninitialized) outside the for-loop, or declaring nextLink (initialized)
outside a while-loop. But I like narrow variable scopes, so this dereferences
twice (when not optimized) to declare otherRect inside the for-loop.
Blanket approval for Lorentz merge to mozilla-1.9.2
a=beltzner for 22.214.171.124 - please make sure to mark status1.9.2:.4-fixed
Merged into 1.9.2 at http://hg.mozilla.org/releases/mozilla-1.9.2/rev/84ba4d805430