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;
+}