Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e5f479b8defece24fe4d83a4d0ea33456dc0ba45
https://github.com/WebKit/WebKit/commit/e5f479b8defece24fe4d83a4d0ea33456dc0ba45
Author: Sosuke Suzuki <[email protected]>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M Source/JavaScriptCore/bytecode/InlineCacheHandler.h
Log Message:
-----------
[JSC] `InlineCacheHandler` layout static_assert fails on Windows ARM64
https://bugs.webkit.org/show_bug.cgi?id=317068
Reviewed by Yusuke Suzuki.
The layout-drift guard added in bug 316163 asserts offsetOfUid() == 40 on
ARM64 release builds. On the MSVC ABI (clang-cl, aarch64-pc-windows-msvc),
the standard [[no_unique_address]] attribute is accepted but has no effect,
so RefCountedBase's NO_UNIQUE_ADDRESS RefCountDebugger member occupies
storage, every InlineCacheHandler field shifts by 8, and offsetOfUid() is
48. Any Windows ARM64 release build that reaches this header fails to
compile.
Add !OS(WINDOWS) to the guard's condition. The differing offset is a
legitimate ABI difference rather than a layout drift, and hard-coding the
MSVC-specific value would break again if the Windows port later maps
NO_UNIQUE_ADDRESS to [[msvc::no_unique_address]]. The guard keeps
protecting the primary ARM64 targets.
We could instead map NO_UNIQUE_ADDRESS to [[msvc::no_unique_address]] so
the layout matches other platforms, but that affects the whole Windows
port, so this patch does not go there.
* Source/JavaScriptCore/bytecode/InlineCacheHandler.h:
Canonical link: https://commits.webkit.org/315175@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications