# HG changeset patch # User thomask # Date 1115769013 0 # Node ID 9f7e0ec4c6d75a54b747dffa65d8689c3f030773 # Parent 50a9bd194e336da0e28912fe00de5819f1ef88cc alignment of struct members Robert Atkinson 2005-05-04 news:d5afkg$1svk$1@digitaldaemon.com diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_11.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_11.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_11.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_11; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(1) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-1); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_12.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_12.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_12.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_12; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(2) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-2); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_13.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_13.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_13.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_13; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(4) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-4); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_14.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_14.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_14.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_14; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(16) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-16); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_15.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_15.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_15.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_15; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(32) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-32); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_16.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_16.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_16.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_16; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(64) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-64); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} + diff -r 50a9bd194e33 -r 9f7e0ec4c6d7 run/align_17.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/align_17.d Tue May 10 23:50:13 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL: http://dstress.kuehne.cn/run/align_17.d $ +// $Date: 2005-05-06 14:14:51 +0200 (Fr, 06 Mai 2005) $ +// $Author: thomask $ + +// @author@ Robert Atkinson +// @date@ 2005-05-04 +// @uri@ news:d5afkg$1svk$1@digitaldaemon.com + +module dstress.run.align_17; + +version(X86){ + version(linux) version=testA; // c compiler: gcc +} + +align(128) struct S{ + byte a; + byte b; +} + +int main(){ + S s; + version(testA){ + assert(&s.a-&s.b==-128); + }else{ + pragma(msg, "no C alignment data present"); + static assert(0); + } + return 0; +} +