Closed Bug 1070465 Opened 11 years ago Closed 11 years ago

Assertion failure: tagCount > 0, at jit/CodeGenerator.cpp

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla35
Tracking Status
firefox35 --- affected

People

(Reporter: gkw, Assigned: shu)

References

Details

(Keywords: assertion, regression, testcase, Whiteboard: [jsbugmon:update])

Attachments

(2 files, 1 obsolete file)

{ while (x && 0) {} let x } asserts js debug shell on m-c changeset c8e325eee9e1 with --ion-eager --no-threads at Assertion failure: tagCount > 0, at jit/CodeGenerator.cpp. Debug configure flags: CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --enable-debug --enable-optimize --enable-nspr-build --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests === Tinderbox Build Bisection Results by autoBisect === The "good" changeset has the timestamp "20140915155135" and the hash "170ce237e4a0". The "bad" changeset has the timestamp "20140915164436" and the hash "b7f4709b34c3". Likely regression window: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=170ce237e4a0&tochange=b7f4709b34c3 Shu-yu, is bug 1001090 a possible regressor? (Guessing that bug is related because the changeset range involves that bug and also the testcase includes "let".)
Flags: needinfo?(shu)
Attachment #8492677 - Flags: review?(jdemooij)
Flags: needinfo?(shu)
Comment on attachment 8492677 [details] [diff] [review] Give JS_UNINITIALIZED_LEXICAL constants unknown type sets in Ion. Review of attachment 8492677 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jit/IonBuilder.cpp @@ +11092,5 @@ > + // TODO We could track uninitialized lexicals more precisely by tracking > + // them in type sets. > + MConstant *c = constant(MagicValue(JS_UNINITIALIZED_LEXICAL)); > + LifoAlloc *lifoAlloc = alloc().lifoAlloc(); > + types::TemporaryTypeSet *unknown = This looks a lot like what we do in MConstant::MConstant for objects. Can we move this code over there?
Attachment #8492677 - Flags: review?(jdemooij)
Shu-yu, assigning to you as you worked on the first patch. :)
Assignee: nobody → shu
Status: NEW → ASSIGNED
Good suggestion. This is much cleaner.
Attachment #8492677 - Attachment is obsolete: true
Attachment #8497097 - Flags: review?(jdemooij)
Comment on attachment 8497097 [details] [diff] [review] Give JS_UNINITIALIZED_LEXICAL constants unknown type sets in Ion. Review of attachment 8497097 [details] [diff] [review]: ----------------------------------------------------------------- Thanks!
Attachment #8497097 - Flags: review?(jdemooij) → review+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: