Last Comment Bug 724773 - IonMonkey: Assertion failure: !ranges_.empty(), at js/src/ion/LinearScan.h:289
: IonMonkey: Assertion failure: !ranges_.empty(), at js/src/ion/LinearScan.h:289
Status: RESOLVED FIXED
: assertion, testcase
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Other Branch
: x86_64 Linux
: -- major (vote)
: ---
Assigned To: Jan de Mooij [:jandem]
:
: Jason Orendorff [:jorendorff]
Mentors:
Depends on:
Blocks: langfuzz IonFuzz
  Show dependency treegraph
 
Reported: 2012-02-06 21:14 PST by Christian Holler (:decoder)
Modified: 2012-02-07 03:38 PST (History)
5 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Patch (1.06 KB, patch)
2012-02-07 01:47 PST, Jan de Mooij [:jandem]
dvander: review+
Details | Diff | Splinter Review

Description Christian Holler (:decoder) 2012-02-06 21:14:46 PST
The following testcase asserts on ionmonkey revision f46cfb199e77 (run with --ion -n -m --ion-eager), tested on 64 bit:


function Day( t ) {}
function DayFromYear( y ) {}
function YearFromTime( t ) {
  for ( var timeToTimeZero = t; ;  ) {  }
}
function MonthFromTime( t ) {
  return( Day(t) - DayFromYear(YearFromTime(t)));
}
addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1969);TDATE",
		UTCDateFromTime(SetFullYear(0,1969)),
		LocalDateFromTime(SetFullYear(0,1969)) );
function addNewTestCase( DateString, UTCDate, LocalDate) {}
function UTCDateFromTime(t) {}
function SetFullYear( t, year, mon, date ) {
  var T = addNewTestCase ? 0 : LocalTime(t) ;
  var MONTH = ( mon == void 0 ) ? MonthFromTime(T) : Number( mon );
}
Comment 1 Jan de Mooij [:jandem] 2012-02-07 01:47:07 PST
Created attachment 594955 [details] [diff] [review]
Patch

Almost all scripts have an MReturn or MThrow and therefore fixedIntervalsUnion usually has at least one range. There's an edge case though: infinite loops. The patch adds a small range to fixedIntervalsUnion to handle this (rare) case so that the allocator does not have to guard against this.

I can't add the testcase since it iloops and we don't support interrupts.
Comment 2 Jan de Mooij [:jandem] 2012-02-07 03:38:33 PST
https://hg.mozilla.org/projects/ionmonkey/rev/c34398f961e7

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