1.1 --- a/tests/dstest_align.cc Sat Oct 01 18:22:03 2022 +0200
1.2 +++ b/tests/dstest_align.cc Sat Oct 01 18:27:21 2022 +0200
1.3 @@ -1,6 +1,8 @@
1.4 #include <stdio.h>
1.5 #include <stdint.h>
1.6
1.7 +#define OFFSET(obj, mem) ((char *) &(obj)->mem - (char *) obj)
1.8 +
1.9 struct A
1.10 {
1.11 uint32_t a;
1.12 @@ -31,21 +33,21 @@
1.13 struct A *ma = (struct A *) m;
1.14 struct A *ma1 = (struct A *) (m + 1);
1.15
1.16 - printf("a.a @ %p = %x\n", &a.a, a.a);
1.17 - printf("a.b @ %p = %llx\n", &a.b, a.b);
1.18 - printf("a.c @ %p = %llx\n\n", &a.c, a.c);
1.19 - printf("b.a @ %p = %x\n", &b.a, b.a);
1.20 - printf("b.b @ %p = %llx\n", &b.b, b.b);
1.21 - printf("b.c @ %p = %llx\n\n", &b.c, b.c);
1.22 - printf("c.a @ %p = %x\n", &c.a, c.a);
1.23 - printf("c.b @ %p = %x\n", &c.b, c.b);
1.24 - printf("c.c @ %p = %llx\n\n", &c.c, c.c);
1.25 - printf("ma.a @ %p = %x\n", &ma->a, ma->a);
1.26 - printf("ma.b @ %p = %llx\n", &ma->b, ma->b);
1.27 - printf("ma.c @ %p = %llx\n\n", &ma->c, ma->c);
1.28 - printf("ma1.a @ %p = %x\n", &ma1->a, ma1->a);
1.29 - printf("ma1.b @ %p = %llx\n", &ma1->b, ma1->b);
1.30 - printf("ma1.c @ %p = %llx\n\n", &ma1->c, ma1->c);
1.31 + printf("a.a @ offset %d = %x\n", OFFSET(&a, a), a.a);
1.32 + printf("a.b @ offset %d = %llx\n", OFFSET(&a, b), a.b);
1.33 + printf("a.c @ offset %d = %llx\n\n", OFFSET(&a, c), a.c);
1.34 + printf("b.a @ offset %d = %x\n", OFFSET(&b, a), b.a);
1.35 + printf("b.b @ offset %d = %llx\n", OFFSET(&b, b), b.b);
1.36 + printf("b.c @ offset %d = %llx\n\n", OFFSET(&b, c), b.c);
1.37 + printf("c.a @ offset %d = %x\n", OFFSET(&c, a), c.a);
1.38 + printf("c.b @ offset %d = %x\n", OFFSET(&c, b), c.b);
1.39 + printf("c.c @ offset %d = %llx\n\n", OFFSET(&c, c), c.c);
1.40 + printf("ma.a @ offset %d = %x\n", OFFSET(ma, a), ma->a);
1.41 + printf("ma.b @ offset %d = %llx\n", OFFSET(ma, b), ma->b);
1.42 + printf("ma.c @ offset %d = %llx\n\n", OFFSET(ma, c), ma->c);
1.43 + printf("ma1.a @ offset %d = %x\n", OFFSET(ma1, a), ma1->a);
1.44 + printf("ma1.b @ offset %d = %llx\n", OFFSET(ma1, b), ma1->b);
1.45 + printf("ma1.c @ offset %d = %llx\n\n", OFFSET(ma1, c), ma1->c);
1.46
1.47 return 0;
1.48 }