inline asm bug

Blas Rodriguez Somoza blas at puertareal.com
Wed Jan 16 20:21:21 PST 2008


Hello

I've found something that seems to a bug working with the inline assembler, but I'm not sure if it is the expected behavoir.

The reference to struct/unions don't work if there is nested structs/unions defined separately. Example:

union test {
	ulong var1;
	struct var2 {
		ubyte zz;
	}
}

union test2 {
	ulong var1;
	pp var2;	
}

struct pp {
	ubyte zz;
}

..
..
asm{
	..
	movzx EAX, test.var2.zz[ESI];
	movzx EAX, test2.var2.zz[ESI];
	..
}

The first line succeed but the second fails:

Error: need 'this' for address of var2
Error: need 'this' for address of var2
bad type/size of operands '*(& var2)'    

When, by error, I change the second line to 

	movzx EAX, test2.var2->zz[ESI];

the compiler crash.


Regards 
Blas Rodriguez Somoza





More information about the Digitalmars-d mailing list