Closed Bug 1154185 Opened 9 years ago Closed 8 years ago

[gcc 5.0] Assertion failure: address.base() == HeapReg.code() and Assertion failure: e == end mochitest-1/jit-1 linux64 crashes

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: glandium, Unassigned)

Details

Attachments

(1 file)

See: https://treeherder.mozilla.org/#/jobs?repo=try&revision=f5d5757faf4a
This try uses gcc 5.1.0-RC-20150412 (first RC release before 5.1, which, confusingly, will be the first release of GCC 5)

on opt builds: Assertion failure: address.base() == HeapReg.code(), at /builds/slave/try-l64-0000000000000000000000/build/src/js/src/asmjs/AsmJSSignalHandlers.cpp:610

on debug builds: Assertion failure: e == end, at /builds/slave/try-l64-d-00000000000000000000/build/src/js/src/jit/Disassembler.h:259
Dan, any idea why this would fail with gcc 5.0? Maybe we can add some asserts/logging to help glandium debug this? :)
Flags: needinfo?(sunfish)
Attached file reduced testcase
Looks like it might be a compiler bug, possibly related to __attribute__((cold)). Attached is a somewhat reduced testcase which shows the bug. Reproduce with g++ -O2 *.cpp && ./a.out. With the gcc 5.0 snapshot, the assertion in main.cpp fails.
Flags: needinfo?(sunfish)
The GCC bug was fixed. Moreover, since then GCC 5.2 was released.
See Also: → 1250496
See Also: 1250496
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: