Mercurial > projects > dstress
changeset 1513:45c339264b57
[Issue 1125] Segfault using tuple in asm code, when size not specified
Don Clugston <clugdbug@yahoo.com.au>
2007-04-11
http://d.puremagic.com/issues/show_bug.cgi?id=1125
author | thomask |
---|---|
date | Mon, 23 Apr 2007 18:09:16 +0000 |
parents | b171e38c078b |
children | 891196dcfc3a |
files | run/t/tuple_23_A.d run/t/tuple_23_B.d run/t/tuple_23_C.d |
diffstat | 3 files changed, 116 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/t/tuple_23_A.d Mon Apr 23 18:09:16 2007 +0000 @@ -0,0 +1,36 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Don Clugston <clugdbug@yahoo.com.au> +// @date@ 2007-04-11 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1125 +// @desc@ [Issue 1125] Segfault using tuple in asm code, when size not specified + +module dstress.run.t.tuple_23_A; + +version(D_InlineAsm_X86){ + version = test; +}else version(D_InlineAsm_X86_64){ + version = test; +} + +version(test){ + int foo(X...)(X expr){ + int i; + asm{ + mov EAX, int ptr expr[0]; + mov i, EAX; + } + return i; + } + + int main(){ + if(3 != foo(3)){ + assert(0); + } + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline X86 ASM support"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/t/tuple_23_B.d Mon Apr 23 18:09:16 2007 +0000 @@ -0,0 +1,36 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Don Clugston <clugdbug@yahoo.com.au> +// @date@ 2007-04-11 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1125 +// @desc@ [Issue 1125] Segfault using tuple in asm code, when size not specified + +module dstress.run.t.tuple_23_B; + +version(D_InlineAsm_X86){ + version = test; +}else version(D_InlineAsm_X86_64){ + version = test; +} + +version(test){ + int foo(X...)(X expr){ + int i; + asm{ + mov EAX, expr[0]; + mov i, EAX; + } + return i; + } + + int main(){ + if(3 != foo(3)){ + assert(0); + } + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline X86 ASM support"); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/t/tuple_23_C.d Mon Apr 23 18:09:16 2007 +0000 @@ -0,0 +1,44 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Don Clugston <clugdbug@yahoo.com.au> +// @date@ 2007-04-11 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=1125 +// @desc@ [Issue 1125] Segfault using tuple in asm code, when size not specified + +module dstress.run.t.tuple_23_C; + +version(D_InlineAsm_X86){ + version = test; +}else version(D_InlineAsm_X86_64){ + version = test; +} + +version(test){ + struct S{ + int a; + int b; + } + + int foo(X...)(X expr){ + int i; + asm{ + mov EAX, expr[0].a; + mov i, EAX; + } + return i; + } + + const S s = {3, 0xCAFFEE}; + + int main(){ + + if(3 != foo(s)){ + assert(0); + } + return 0; + } +}else{ + static assert(0, "DSTRESS{XFAIL}: no inline X86 ASM support"); +}