[Issue 8722] foreach triggers a floating point exception with multidimensional array of a dimension equal to 0
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Sep 25 02:26:18 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8722
monarchdodra at gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |monarchdodra at gmail.com
--- Comment #2 from monarchdodra at gmail.com 2012-09-25 02:26:59 PDT ---
Additional information:
The first example makes my dmd 2.060 crash actually (!)
Note that the two examples are not *strictly* equivalent, as
foreach(element)
will make a copy of each element, whereas:
foreach ( i; 0 .. array.length )
whatever( array[i] )
Will access each element by reference.
Changing the first code snippet to:
//-----------------------------
void whatever( T )( in ref T array )
{
static if ( isArray!( T ) )
foreach ( ref element; array ) //HERE: REF
whatever( element );
}
void main()
{
int[0][2][3] array;
whatever( array );
}
//-----------------------------
Works.
Either way, there is something wrong in there, if dmd is crashing. Besides, the
code is legit, and should not produce a floating point exception either.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list