changeset 729:8af8ab0c2242

-O and -inline bugs
author thomask
date Sat, 05 Nov 2005 08:38:35 +0000
parents a938b1b6d583
children f8975afad797
files nocompile/b/bug_e2ir_299_C.d norun/m/main_05_B.d run/c/catch_05_H.d run/f/for_04_B.d run/f/for_05_B.d run/f/foreach_28_B.d run/f/foreach_29_B.d run/m/mixin_14_E.d run/m/mixin_14_F.d run/m/mixin_14_G.d run/m/mixin_14_H.d run/m/mixin_14_I.d run/m/mixin_14_J.d run/m/mixin_14_K.d run/m/mixin_14_L.d run/r/return_06_B.d
diffstat 16 files changed, 455 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/b/bug_e2ir_299_C.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	h3r3tic <foo@bar.baz>
+// @date@	2004-12-24
+// @uri@	news:cqi3v3$r2o$1@digitaldaemon.com
+// @url@	nntp://digitalmars.com/digitalmars.D.bugs/2601
+
+// function literals cannot call nested functions
+
+// __DSTRESS_DFLAGS__ -inline
+// __DSTRESS_ELINE__ 20
+
+module dstress.nocompile.b.bug_e2ir_299_C;
+
+int main(){
+	void foo() {}
+	void function() bar = function void() {
+		foo();
+	};
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/norun/m/main_05_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,11 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 10
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.norun.m.main_05_B;
+
+int main(){
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/c/catch_05_H.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,40 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Nick <Nick_member@pathlink.com>
+// @date@	2005-06-21
+// @uri@	news:d99id2$fgj$1@digitaldaemon.com
+// @desc@	foreach and throw/catch code generation
+
+// __DSTRESS_DFLAGS__ -O
+
+module dstress.run.c.catch_05_H;
+
+void dummy(...){
+}
+
+int bb[char[]];
+
+int main(){
+
+	foreach(char[] s, int i; bb){
+		dummy();
+	}
+
+	bb["a"] = 1;
+
+	foreach(int b; bb){
+		try{
+			throw new Error("foo");
+		}catch(Error e){
+			assert(e);
+			return 0;
+		}catch{
+			assert(0);
+		}
+		assert(0);
+	}
+
+	assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/for_04_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Stewart Gordon <smjg_1998@yahoo.com>
+// @date@	2005-04-18
+// @uri@	news:d4026v$nc0$5@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.f.for_04_B;
+
+int main() {
+	int i;
+	for (i = 0; i < 10; i++){
+		debug i=22;
+	}
+	assert(i==10);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/for_05_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Stewart Gordon <smjg_1998@yahoo.com>
+// @date@	2005-04-18
+// @uri@	news:d4026v$nc0$5@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.f.for_05_B;
+
+int main() {
+	int i;
+	for (i = 0; i < 10; i++){
+		version(dummy) i=22;
+	}
+	assert(i==10);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_28_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,18 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Stewart Gordon <smjg_1998@yahoo.com>
+// @date@	2005-04-18
+// @uri@	news:d4026v$nc0$5@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.f.foreach_28_B;
+
+int main(char[][] args) {
+	foreach(char[] p; args){
+		version(dummy) int i;
+	}
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/f/foreach_29_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,18 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Stewart Gordon <smjg_1998@yahoo.com>
+// @date@	2005-04-18
+// @uri@	news:d4026v$nc0$5@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.foreach_29_B;
+
+int main(char[][] args) {
+	foreach(char[] p; args){
+		debug(dummy) int i;
+	}
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_E.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.m.mixin_14_E;
+
+int main(){
+	char[] arg = "AAA";
+	mixin Template!();
+	
+	assert(Class.foo(arg) == "AAA");
+	assert(test() == "XXX");
+	
+	return 0;
+}
+
+template Template(){
+	char[] arg = "XXX";
+	
+	char[] test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static char[] foo(char[] s){
+		return s;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_F.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.m.mixin_14_F;
+
+int main(){
+	int arg = 1;
+	mixin Template!();
+	
+	assert(Class.foo(arg) == 1);
+	assert(test() == 2);
+	
+	return 0;
+}
+
+template Template(){
+	int arg = 2;
+	
+	int test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static int foo(int i){
+		return i;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_G.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,36 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.m.mixin_14_G;
+
+int main(){
+	mixin Template!();
+	char[] arg = "AAA";
+
+	
+	assert(Class.foo(arg) == "AAA");
+	assert(test() == "XXX");
+	
+	return 0;
+}
+
+template Template(){
+	char[] arg = "XXX";
+	
+	char[] test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static char[] foo(char[] s){
+		return s;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_H.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -inline
+
+module dstress.run.m.mixin_14_H;
+
+int main(){
+	mixin Template!();
+	int arg = 1;
+	
+	assert(Class.foo(arg) == 1);
+	assert(test() == 2);
+	
+	return 0;
+}
+
+template Template(){
+	int arg = 2;
+	
+	int test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static int foo(int i){
+		return i;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_I.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -g
+
+module dstress.run.m.mixin_14_I;
+
+int main(){
+	char[] arg = "AAA";
+	mixin Template!();
+	
+	assert(Class.foo(arg) == "AAA");
+	assert(test() == "XXX");
+	
+	return 0;
+}
+
+template Template(){
+	char[] arg = "XXX";
+	
+	char[] test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static char[] foo(char[] s){
+		return s;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_J.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -g
+
+module dstress.run.m.mixin_14_J;
+
+int main(){
+	int arg = 1;
+	mixin Template!();
+	
+	assert(Class.foo(arg) == 1);
+	assert(test() == 2);
+	
+	return 0;
+}
+
+template Template(){
+	int arg = 2;
+	
+	int test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static int foo(int i){
+		return i;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_K.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,36 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -g
+
+module dstress.run.m.mixin_14_K;
+
+int main(){
+	mixin Template!();
+	char[] arg = "AAA";
+
+	
+	assert(Class.foo(arg) == "AAA");
+	assert(test() == "XXX");
+	
+	return 0;
+}
+
+template Template(){
+	char[] arg = "XXX";
+	
+	char[] test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static char[] foo(char[] s){
+		return s;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/m/mixin_14_L.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,35 @@
+// $HeadULR$
+// $Date$
+// $Author$
+
+// @author@	ElfQT <dethjunk@yahoo.com>
+// @date@	2005-09-03
+// @uri@	news:dfd6f0$oit$1@digitaldaemon.com
+
+// __DSTRESS_DFLAGS__ -g
+
+module dstress.run.m.mixin_14_L;
+
+int main(){
+	mixin Template!();
+	int arg = 1;
+	
+	assert(Class.foo(arg) == 1);
+	assert(test() == 2);
+	
+	return 0;
+}
+
+template Template(){
+	int arg = 2;
+	
+	int test(){
+		return Class.foo(arg);
+	}
+}
+
+class Class{
+	static int foo(int i){
+		return i;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/r/return_06_B.d	Sat Nov 05 08:38:35 2005 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS__ -inline
+
+module dstress.run.r.return_06_B;
+
+int test(int i){
+	if(i==0){
+		return 2;
+	}
+}
+
+int main(){
+	assert(test(0)==2);
+	try{
+		test(1);
+	}catch{
+		return 0;
+	}
+	assert(0);
+}