strange behaviour with out of bounds exception and tango
Fawzi Mohamed
fmohamed at mac.com
Fri May 9 08:18:21 PDT 2008
I am not totally sure this is a gdc bug, but there are strong hints that it is.
The out-of bounds exception seem to garble the stack in a fully
reproducible way on darwin (10.4 intel, gdc r 209), and to crash on
Linux x86.
gdc Linux x86_64 and DMD x86 work.
a sample file showing this behaviour is:
-------------
// a good place to set the breakpoint is genobj.d:968
// (post garbling), and lifetime.d:99 (and later lifetime.d:103)
// (pre garbling)
module hello_tango;
void main(char [][] argv)
{
int []a=new int[10];
a.length=5;
int b=a[6];
}
-----------
With tango it fails, the corresponding tango ticket is
http://www.dsource.org/projects/tango/ticket/1094
I suspect that this is connected with the part of the code that
extracts filename and line number for the array exception (or, but more
unlikely, with the last-call optimization, or inlining that removes the
_d_array_bounds call from the stack).
Unfortunately I wasn't able to reproduce the bug with phobos, but I
still suspect that it is compiler related.
Does this pass the "bug-reporteable" threshold?
Fawzi
More information about the D.gnu
mailing list