Closed Bug 1572385 Opened 5 years ago Closed 5 years ago

js/src/vm/StringType.h:338:5: error: static_assert failed due to requirement 'JSString::offsetOfFlags() == __builtin_offsetof(JS::shadow::String, flags_)' "shadow::String flags offset must match JSString" on s390x, and presumably other big-endians

Categories

(Core :: JavaScript Engine, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: glandium, Assigned: jandem)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

https://treeherder.mozilla.org/logviewer.html#?job_id=260536670&repo=try

[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/gc/StoreBuffer.cpp:7:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/gc/StoreBuffer-inl.h:15:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/gc/Heap-inl.h:13:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/gc/Zone.h:15:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/gc/ZoneAllocator.h:15:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/vm/Runtime.h:24:
[task 2019-08-08T06:27:15.779Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/builtin/AtomicsObject.h:15:
[task 2019-08-08T06:27:15.780Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/vm/JSObject.h:18:
[task 2019-08-08T06:27:15.780Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/vm/Shape.h:32:
[task 2019-08-08T06:27:15.780Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/vm/ObjectGroup.h:19:
[task 2019-08-08T06:27:15.780Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/vm/TypeSet.h:22:
[task 2019-08-08T06:27:15.780Z] 06:27:15     INFO -  In file included from /builds/worker/workspace/build/src/js/src/jit/IonTypes.h:19:
[task 2019-08-08T06:27:15.780Z] 06:27:15    ERROR -  /builds/worker/workspace/build/src/js/src/vm/StringType.h:338:5: error: static_assert failed due to requirement 'JSString::offsetOfFlags() == __builtin_offsetof(JS::shadow::String, flags_)' "shadow::String flags offset must match JSString"
[task 2019-08-08T06:27:15.781Z] 06:27:15     INFO -      static_assert(JSString::offsetOfFlags() == offsetof(String, flags_),
[task 2019-08-08T06:27:15.781Z] 06:27:15     INFO -      ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2019-08-08T06:27:15.781Z] 06:27:15     INFO -  1 error generated.
[task 2019-08-08T06:27:15.781Z] 06:27:15     INFO -  /builds/worker/workspace/build/src/config/rules.mk:786: recipe for target 'StoreBuffer.o' failed

This static assert used to check:

offsetof(JSString, d.flags_) == offsetof(String, flags_)

But now it checks:

JSString::offsetOfFlags() == offsetof(String, flags_)

We could go back to checking the raw flags_ field offset I suppose.

Flags: needinfo?(jdemooij)

Bugbug thinks this bug is a defect, but please change it back in case of error.

Type: task → defect

Yeah, checking the raw field makes sense. The 'offsetOfFlags' stuff is really just for jits.

Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)

The length_ and flags_ fields are private so I added a protected offsetOf* accessor.

Priority: -- → P2
Pushed by jdemooij@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0d98b57bcabf
Check raw flags_ field offset in JSString::staticAsserts to fix 64-bit big-endian platforms. r=tcampbell
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
Has Regression Range: --- → yes
Keywords: regression
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: