Mercurial > projects > dstress
changeset 1459:872b6f641b5d
[Issue 814] lazy argument + variadic arguments
Ville Mattila <ville.mattila@iki.fi>
2007-01-07
http://d.puremagic.com/issues/show_bug.cgi?id=814
author | thomask |
---|---|
date | Thu, 05 Apr 2007 10:26:56 +0000 |
parents | 03a2f3633971 |
children | d0ab95b04926 |
files | reporter.txt run/l/lazy_04_A.d run/l/lazy_04_B.d run/l/lazy_04_C.d |
diffstat | 4 files changed, 106 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/reporter.txt Thu Apr 05 10:19:38 2007 +0000 +++ b/reporter.txt Thu Apr 05 10:26:56 2007 +0000 @@ -168,6 +168,7 @@ van eeshan <vanee@hotmail.com> Vathix <chris@dprogramming.com>, <vathix@dprogramming.com>, <vathixSpamFix@dprogramming.com> Victor Nakoryakov <nail-mail@mail.ru> +Ville Mattila <ville.mattila@iki.fi> Vladimir <v04bvs@gmail.com> Vladimir <thecybershadow@gmail.com> Walter <newshound@digitalmars.com>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/l/lazy_04_A.d Thu Apr 05 10:26:56 2007 +0000 @@ -0,0 +1,35 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Ville Mattila <ville.mattila@iki.fi> +// @date@ 2007-01-07 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=814 +// @desc@ [Issue 814] lazy argument + variadic arguments + +module dstress.run.l.lazy_04_A; + +import std.stdarg; + +void foo(lazy int expression, ...){ + if(0xDEAD_CAFF != expression){ + assert(0); + } + if (_arguments.length > 0) { + if ((_arguments[0]) == typeid(char[])) { + char[] s = va_arg!(char[])(_argptr); + if("Katze" != s){ + assert(0); + } + }else{ + assert(0); + } + }else{ + assert(0); + } +} + +int main(){ + foo(0xDEAD_CAFF, "Katze", "Fau"); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/l/lazy_04_B.d Thu Apr 05 10:26:56 2007 +0000 @@ -0,0 +1,35 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Ville Mattila <ville.mattila@iki.fi> +// @date@ 2007-01-07 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=814 +// @desc@ [Issue 814] lazy argument + variadic arguments + +module dstress.run.l.lazy_04_B; + +import std.stdarg; + +void foo(lazy ubyte expression, ...){ + if(0xFA != expression){ + assert(0); + } + if (_arguments.length > 0) { + if ((_arguments[0]) == typeid(char[])) { + char[] s = va_arg!(char[])(_argptr); + if("Katze" != s){ + assert(0); + } + }else{ + assert(0); + } + }else{ + assert(0); + } +} + +int main(){ + foo(0xFA, "Katze", "Fau"); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/l/lazy_04_C.d Thu Apr 05 10:26:56 2007 +0000 @@ -0,0 +1,35 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Ville Mattila <ville.mattila@iki.fi> +// @date@ 2007-01-07 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=814 +// @desc@ [Issue 814] lazy argument + variadic arguments + +module dstress.run.l.lazy_04_C; + +import std.stdarg; + +void foo(lazy char[] expression, ...){ + if("Dog" != expression){ + assert(0); + } + if (_arguments.length > 0) { + if ((_arguments[0]) == typeid(char[])) { + char[] s = va_arg!(char[])(_argptr); + if("Katze" != s){ + assert(0); + } + }else{ + assert(0); + } + }else{ + assert(0); + } +} + +int main(){ + foo("Dog", "Katze", "Fau"); + return 0; +}