Mercurial > projects > dstress
changeset 1098:19734284b75a
[Issue 272] foreach inside anonymous function crashes dmd.exe
Serg Kovrov <reg4dyh@inbox.lv>
2006-07-30
news:bug-272-3@http.d.puremagic.com/issues/
author | thomask |
---|---|
date | Mon, 14 Aug 2006 11:37:46 +0000 |
parents | ba136e21b011 |
children | 913919d47a5e |
files | run/f/foreach_36_A.d run/f/foreach_36_B.d run/f/foreach_36_C.d run/f/foreach_36_D.d |
diffstat | 4 files changed, 170 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/f/foreach_36_A.d Mon Aug 14 11:37:46 2006 +0000 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Serg Kovrov <reg4dyh@inbox.lv> +// @date@ 2006-07-30 +// @uri@ news:bug-272-3@http.d.puremagic.com/issues/ +// @desc@ [Issue 272] foreach inside anonymous function crashes dmd.exe + +module destress.run.f.foreach_36_A; + +alias void function(char[][int]) FN; + +int status; + +int main(){ + FN fn = function(char[][int] aarray){ + int count; + + foreach (int key, char[] element; aarray){ + if(key != 6){ + assert(0); + } + if(element != "a"){ + assert(0); + } + status++; + } + }; + + char[][int] aarray; + aarray[6] = "a"; + + status = 0; + + fn(aarray); + + if(status != 1){ + assert(0); + } + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/f/foreach_36_B.d Mon Aug 14 11:37:46 2006 +0000 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Serg Kovrov <reg4dyh@inbox.lv> +// @date@ 2006-07-30 +// @uri@ news:bug-272-3@http.d.puremagic.com/issues/ +// @desc@ [Issue 272] foreach inside anonymous function crashes dmd.exe + +module destress.run.f.foreach_36_B; + +alias void delegate(char[][int]) FN; + +int main(){ + int status; + + FN fn = delegate(char[][int] aarray){ + int count; + + foreach (int key, char[] element; aarray){ + if(key != 6){ + assert(0); + } + if(element != "a"){ + assert(0); + } + status++; + } + }; + + char[][int] aarray; + aarray[6] = "a"; + + status = 0; + + fn(aarray); + + if(status != 1){ + assert(0); + } + + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/f/foreach_36_C.d Mon Aug 14 11:37:46 2006 +0000 @@ -0,0 +1,42 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Serg Kovrov <reg4dyh@inbox.lv> +// @date@ 2006-07-30 +// @uri@ news:bug-272-3@http.d.puremagic.com/issues/ +// @desc@ [Issue 272] foreach inside anonymous function crashes dmd.exe + +module destress.run.f.foreach_36_C; + +alias void delegate(char[]) FN; + +int main(){ + int status; + + FN fn = delegate(char[] array){ + int count; + + foreach (size_t index, char element; array){ + if(index != 0){ + assert(0); + } + if(element != 'a'){ + assert(0); + } + status++; + } + }; + + char[] array = "a"; + status = 0; + + fn(array); + + if(status != 1){ + assert(0); + } + + return 0; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/f/foreach_36_D.d Mon Aug 14 11:37:46 2006 +0000 @@ -0,0 +1,42 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Serg Kovrov <reg4dyh@inbox.lv> +// @date@ 2006-07-30 +// @uri@ news:bug-272-3@http.d.puremagic.com/issues/ +// @desc@ [Issue 272] foreach inside anonymous function crashes dmd.exe + +module destress.run.f.foreach_36_D; + +alias void function(char[]) FN; + +int status; + +int main(){ + FN fn = function(char[] array){ + int count; + + foreach (size_t index, char element; array){ + if(index != 0){ + assert(0); + } + if(element != 'a'){ + assert(0); + } + status++; + } + }; + + char[] array = "a"; + status = 0; + + fn(array); + + if(status != 1){ + assert(0); + } + + return 0; +} +