Closed Bug 772901 Opened 12 years ago Closed 12 years ago

IonMonkey: Assertion failure: false (Bad SSA value), at ../jsanalyze.h:1069

Categories

(Core :: JavaScript Engine, defect)

Other Branch
x86_64
Linux
defect
Not set
major

Tracking

()

RESOLVED FIXED

People

(Reporter: decoder, Assigned: dvander)

References

Details

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

Attachments

(1 file)

The following testcase asserts on ionmonkey revision 3ff7d89ec13d (run with --ion -n -m --ion-eager):


function f(x) {
    delete ((x)++);
    arguments[0] !== undefined;
}
f(1, x = [f.ArrayBuffer,unwatch.Int32Array], this, this, this) ;
Attached patch fixSplinter Review
status update on whether LOCALINC will plague me in this JIT too: yes
Assignee: general → dvander
Status: NEW → ASSIGNED
Attachment #641294 - Flags: review?(sstangl)
Comment on attachment 641294 [details] [diff] [review]
fix

Review of attachment 641294 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/ion/TypeOracle.cpp
@@ +133,5 @@
>      }
>  
> +    BinaryTypes b;
> +    b.lhsTypes = types;
> +    b.rhsTypes = NULL;

This is strange, but works since the value is unused in jsop_incslot. Since this isn't a binary operation anyway, would it just be possible to use pushedTypeSet()? JM does this in its jsop_localinc().
Attachment #641294 - Flags: review?(sstangl) → review+
Actually yeah I think returning UnaryTypes would make more sense, but MAdd::infer() only takes a BinaryTypes. I'll leave it alone for now...

http://hg.mozilla.org/projects/ionmonkey/rev/66aac8e7a214
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
A testcase for this bug was automatically identified at js/src/jit-test/tests/ion/bug772901.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.