Mercurial > projects > dstress
view run/bug_20041226_C.d @ 248:ae135d48d8b5
fixed version check for pre 0.106 DMD versions
author | thomask |
---|---|
date | Mon, 24 Jan 2005 20:11:13 +0000 |
parents | 249516e487f9 |
children | f9e1d827a255 |
line wrap: on
line source
// $HeadURL$ // $Date$ // $Author$ // @author@ h3r3tic <foo@bar.baz> // @date@ 2004-12-26 // @uri@ news:cqmufn$26oj$1@digitaldaemon.com // @url@ nntp://digitalmars.com/digitalmars.D.bugs/2606 module dstress.run.bug_20041226_C; version(none){ import std.stdio; }else{ void writefln(...){ } } struct vec3{ vec3 opSub(vec3 a){ vec3 x; return x; } } struct Face{ vec3 a; } struct Mesh{ Face[] faces; } struct GeomObject{ Mesh mesh; char[] name; vec3 xlate; } class AseLoader{ this(){ GeomObject go; go.name = "NODE"; geomObjects ~= go; } GeomObject[] geomObjects; } void extractTriangles(GeomObject geomObj){ void foobar(){ try{ writefln("name: ", geomObj.name); return; // avoid accessing the array with 0 elements in the next line geomObj.mesh.faces[0].a - geomObj.xlate; // when this line is removed, the bug doesn't appear }catch(Object err){ throw err; } } foobar(); } int main(){ try{ AseLoader al = new AseLoader; foreach(GeomObject go; al.geomObjects){ writefln("processing ", go.name); extractTriangles(go); } }catch(Object err){ writefln("Exception caught:", err); } return 0; }