Bug 189758
Summary: | Packed Variant violates alignment on ARM and MIPS | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dominik Inführ <dominik.infuehr> |
Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Blocker | CC: | achristensen, fujii.hironori, koivisto |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Other | ||
OS: | Linux | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=188559 |
Dominik Inführ
Hi,
recent patch https://bugs.webkit.org/show_bug.cgi?id=188559 broke tests in JSC on ARM and MIPS because data isn't aligned anymore. Not sure what's the best way to fix that: if we should just disable pack'ing on at least ARM and MIPS.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Dominik Inführ
Some more additional information: JSC has now 26k test failures due to this change on ARM: https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release. Reason for that is the lexer uses a type std::optional<Variant<double,int*>> which breaks probably all tests (see Source/JavaScriptCore/parser/Lexer.(h|cpp)).
Fujii Hironori
How do you know Lexer is the crash point? Did you get the coredump and the backtrace?
Dominik Inführ
I got the backtrace from testing it locally on my board. It also makes sense since the Lexer uses a Variant in an std::optional and the corresponding assembly code fails on storing a floating point register to a memory location that's not 8-byte aligned.