Some investigation by ager and some asking around has resulted in the
conclusion that bit_cast only serves to prevent warnings.  It doesn't
actually fix the program's use of undefined behaviour.  Mads was able to
get gcc to generate broken code for a function with strict aliasing issues
both with and without bit_cast.

We have ripped bit_cast out of Fletch, replacing it with reinterpret_cast
everywhere.

We have also added the -fno-strict-aliasing, since there's no sensible way
to fix a GC and a runtime for a dynamic language so it doesn't alias
pointers.  (The only way I can think of involves getting rid of the C++
"Object" class and treating the heap as a char array, which would be
horrible beyond belief).  This flag is available on both Clang and gcc, and
is the default behaviour for MSVC.  If you add the same flag to V8 you may
see a small performance regression on Linux, but not on Mac and Windows
where I think it already is the default.

-- 
Erik Corry

Google Denmark ApS
Frederiksborggade 20B, 1 sal
1360 København K
Denmark
CVR nr. 28 86 69 84

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to