view run/break_08.d @ 1623:04022926a4d5

Fix dstress.run.b.bug_cod1_2528_C as reported by Don Clugston Quoting Don's words from Ticket #8: Fails because it returns 3 instead of 0. The DStress test case is incorrect. The arrray literal is an int, so it's 4 bytes. Casting it to void[] should give a length of 4 -- and that's exactly what it does. Should be "return x.length - 4;".
author Leandro Lucarella <llucax@gmail.com>
date Fri, 05 Nov 2010 10:10:51 -0300
parents ec5e144583ea
children
line wrap: on
line source

// $HeadURL$
// $Date$
// $Author$

module dstress.run.break_08;

int status;

int test(string[] args){
loop:	while(1){	
		try{
			try{
				if(args.length==1){
					break loop;
				}
			}finally{
				if(0 != status){
					assert(0); 
				}
				status+=2;
			}

			try{
				assert(0);
			}finally{
				assert(0);
			}
		}finally{
			if(2 != status){
				assert(0);
			}
			status+=3;
		}
		assert(0);
		return 0;
	}
	return -1;
}

int main(string[] args){
	if(0 != status ){
		assert(0); 
	}
	if(1 != args.length ){
		assert(0); 
	}
	if(-1 != test(args) ){
		assert(0);
	}
	if(5 != status ){
		assert(0);
	}
	return 0;
}