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

RESOLVED WORKSFORME

Status

()

defect
RESOLVED WORKSFORME
4 years ago
3 years ago

People

(Reporter: glandium, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

769 bytes, application/x-compressed
Details
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)
Posted 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: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.