Mercurial > projects > dstress
diff run/a/asm_04_B.d @ 1495:7a686112b047
[Issue 1172] Inline assembler: cannot access member of templated aggregate directly
Matti Niemenmaa <deewiant@gmail.com>
2007-04-21
http://d.puremagic.com/issues/show_bug.cgi?id=1172
author | thomask |
---|---|
date | Mon, 23 Apr 2007 17:54:56 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_04_B.d Mon Apr 23 17:54:56 2007 +0000 @@ -0,0 +1,45 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Matti Niemenmaa <deewiant@gmail.com> +// @date@ 2007-04-21 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1172 +// @desc@ [Issue 1172] Inline assembler: cannot access member of templated aggregate directly + +module dstress.run.a.asm_04_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline ASM support"); +} + +version(runTest){ + struct Foo(T){ + int a; + } + + alias Foo!(int) X; + + int main(){ + int bar; + + X foo; + foo.a = 0xFEDC_BA09; + + asm{ + lea EAX, foo; + mov ECX, X.a[EAX]; + mov bar, ECX; + } + + if(0xFEDC_BA09 != bar){ + assert(0); + } + + return 0; + } +}