Last Comment Bug 771157 - IonMonkey: Crash [@ mozilla::DebugOnly<int>::operator++(int)]
: IonMonkey: Crash [@ mozilla::DebugOnly<int>::operator++(int)]
Status: RESOLVED FIXED
[jsbugmon:update]
: crash, testcase
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Other Branch
: x86_64 Linux
: -- major (vote)
: ---
Assigned To: Kannan Vijayan [:djvj]
: general
:
Mentors:
Depends on:
Blocks: langfuzz IonFuzz
  Show dependency treegraph
 
Reported: 2012-07-05 08:02 PDT by Christian Holler (:decoder)
Modified: 2013-02-07 05:17 PST (History)
7 users (show)
choller: in‑testsuite+
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Refactoring to resolve bug. (5.77 KB, patch)
2012-07-05 11:07 PDT, Kannan Vijayan [:djvj]
dvander: review+
Details | Diff | Splinter Review

Description Christian Holler (:decoder) 2012-07-05 08:02:54 PDT
The following testcase crashes on ionmonkey revision 9cf3ea112635 (run with --ion -n -m --ion-eager):


var callStack = new Array();
function TestCase(n, d, e, a) {
  this.expect = e;
  this.actual = a;
  this.passed = getTestCaseResult(e, a);
  dump(+ this.path + ' ' + 'reason: ' + toPrinted(this.reason)+ '\n');
};
function reportCompare (expected, actual, description) {
  var testcase = new TestCase("unknown-test-name", description, expected, actual);
}
function enterFunc (funcName) {
  callStack.push(funcName);
  var lastFunc = callStack.pop();
  reportCompare(funcName, lastFunc, "Test driver failure wrong exit function ");
}
try {
var summary = 'String static methods';
var actual = '';
expect = '2';
reportCompare(expect, actual, summary + " String.toUpperCase(new Boolean(true))");
} catch(exc0) {}
try {
function TestCase(n, d, e, a) {}
enterFunc ('test');
reportCompare(expect, actual, summary);
} catch(exc2) {}
Comment 1 David Anderson [:dvander] 2012-07-05 09:59:46 PDT
Kannan, this looks like fallout from polymorphic inlining: we assert adding MIR to a block that has ended. lastIns = InlineFunctionGuard and the MIR we're adding is a CreateThis.
Comment 2 Kannan Vijayan [:djvj] 2012-07-05 11:07:06 PDT
Created attachment 639399 [details] [diff] [review]
Refactoring to resolve bug.

This cleans up the sequencing of blocks in the poly inline code.

I also removed some asserts that seem really unnecessary.
Comment 3 Kannan Vijayan [:djvj] 2012-07-05 11:17:43 PDT
https://hg.mozilla.org/projects/ionmonkey/rev/5d1b1af768fc
Comment 4 Christian Holler (:decoder) 2013-02-07 05:17:11 PST
Automatically extracted testcase for this bug was committed:

https://hg.mozilla.org/mozilla-central/rev/2e891e0db397

Note You need to log in before you can comment on or make changes to this bug.