I spent a little bit more time with this to be able to come up with a
reduced testcase.  The plan is to file a bug with Apple on the
toolchain part of the issue.  Eventually, I realized that all four of
the cases were the same toolchain issue.

V8's use of statics inside inline functions was not improper.  A
program will only wind up with one definition of such static data when
it occurs inside methods and static methods, even when inlined, per
the C++ spec.  This is different from the behavior of static data
inside inlined C functions.

The actual toolchain bug is as I described it before.  Knowing what I
now know about it, I can say that I can't find any other affected
static variables within mksnapshot.  It's possible that others are
present in other areas of v8, however.

The fix I sent out yesterday that's now been rolled into v8 still
appears to me to be the best way to work around this bug.  I just
wanted to make clear to everyone that the old code was not wrong, it
just happened to trigger a bug in the Apple toolchain

Mark

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to