[webkit-reviews] review requested: [Bug 27869] strict-aliasing warnings in JSFunction.h : [Attachment 33861] aliasing.patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 31 00:32:27 PDT 2009


Xan Lopez <xan.lopez at gmail.com> has asked  for review:
Bug 27869: strict-aliasing warnings in JSFunction.h
https://bugs.webkit.org/show_bug.cgi?id=27869

Attachment 33861: aliasing.patch
https://bugs.webkit.org/attachment.cgi?id=33861&action=review

------- Additional Comments from Xan Lopez <xan.lopez at gmail.com>
GCC gives me the following warnings when compiling with JSFunction.h:

In file included from ../../JavaScriptCore/runtime/JSFunction.cpp:27,
		 from ../../JavaScriptCore/AllInOneFile.cpp:36:
../../JavaScriptCore/runtime/JSFunction.h: In member function ‘JSC::JSValue (*
JSC::JSFunction::nativeFunction())(JSC::ExecState*, JSC::JSObject*,
JSC::JSValue, const JSC::ArgList&)’:
../../JavaScriptCore/runtime/JSFunction.h:87: warning: dereferencing
type-punned pointer will break strict-aliasing rules
../../JavaScriptCore/runtime/JSFunction.h: In member function ‘JSC::ScopeChain&
JSC::JSFunction::scopeChain()’:
../../JavaScriptCore/runtime/JSFunction.h:104: warning: dereferencing
type-punned pointer will break strict-aliasing rules
../../JavaScriptCore/runtime/JSFunction.h: In member function ‘void
JSC::JSFunction::setScopeChain(const JSC::ScopeChain&)’:
../../JavaScriptCore/runtime/JSFunction.h:119: warning: dereferencing
type-punned pointer will break strict-aliasing rules
../../JavaScriptCore/runtime/JSFunction.h: In member function ‘void
JSC::JSFunction::setNativeFunction(JSC::JSValue (*)(JSC::ExecState*,
JSC::JSObject*, JSC::JSValue, const JSC::ArgList&))’:
../../JavaScriptCore/runtime/JSFunction.h:123: warning: dereferencing
type-punned pointer will break strict-aliasing rules

The problem is that we are accessing a char array as NativeFunction* and
ScopeChain*, which GCC deems to be incompatible pointers. Attached is the usual
trick-solution for this, which is to use a union type and do all memory access
through there. This was done with the help of Maciej on IRC, and he also
suggested that we could do further cleanups here, so I'm attaching my current
patch for discussion.


More information about the webkit-reviews mailing list