Mercurial > projects > dstress
changeset 219:249516e487f9
h3r3tic <foo@bar.baz>
2004-12-26
news:cqmufn$26oj$1@digitaldaemon.com
nntp://digitalmars.com/digitalmars.D.bugs/2606
author | thomask |
---|---|
date | Thu, 30 Dec 2004 11:02:13 +0000 |
parents | cb22f2d42678 |
children | 8fa24d6682cd |
files | run/bug_20041226_A.d run/bug_20041226_B.d run/bug_20041226_C.d run/bug_20041226_D.d run/bug_20041226_E.d |
diffstat | 5 files changed, 398 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20041226_A.d Thu Dec 30 11:02:13 2004 +0000 @@ -0,0 +1,81 @@ +// $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 + +// __DSTRESS_DFLAGS__ -inline + +module dstress.run.bug_20041226_A; + +version(all){ + void writefln(...){ + } +}else{ + import std.stdio; +} + +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; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20041226_B.d Thu Dec 30 11:02:13 2004 +0000 @@ -0,0 +1,81 @@ +// $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 + +// __DSTRESS_DFLAGS__ -inline -g + +module dstress.run.bug_20041226_B; + +version(all){ + void writefln(...){ + } +}else{ + import std.stdio; +} + +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; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20041226_C.d Thu Dec 30 11:02:13 2004 +0000 @@ -0,0 +1,79 @@ +// $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(all){ + void writefln(...){ + } +}else{ + import std.stdio; +} + +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; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20041226_D.d Thu Dec 30 11:02:13 2004 +0000 @@ -0,0 +1,77 @@ +// $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 + +// __DSTRESS_DFLAGS__ -inline + +module dstress.run.bug_20041226_D; + +version(all){ + void writefln(...){ + } +}else{ + import std.stdio; +} + +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(){ + 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 + } + + 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; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/bug_20041226_E.d Thu Dec 30 11:02:13 2004 +0000 @@ -0,0 +1,80 @@ +// $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 + +// __DSTRESS_DFLAGS__ -inline + +module dstress.run.bug_20041226_E; + +version(all){ + void writefln(...){ + } +}else{ + import std.stdio; +} + +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; + }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; +}