# HG changeset patch # User Paul Boddie # Date 1664641641 -7200 # Node ID 0f71c08daabab1fc3fcab1555ccc61fdd1cd7c66 # Parent c6afb5edab017e941ad99a5a38bbf8d4311a462e Calculate alignment offsets instead of showing pointer values. diff -r c6afb5edab01 -r 0f71c08daaba tests/dstest_align.cc --- a/tests/dstest_align.cc Sat Oct 01 18:22:03 2022 +0200 +++ b/tests/dstest_align.cc Sat Oct 01 18:27:21 2022 +0200 @@ -1,6 +1,8 @@ #include #include +#define OFFSET(obj, mem) ((char *) &(obj)->mem - (char *) obj) + struct A { uint32_t a; @@ -31,21 +33,21 @@ struct A *ma = (struct A *) m; struct A *ma1 = (struct A *) (m + 1); - printf("a.a @ %p = %x\n", &a.a, a.a); - printf("a.b @ %p = %llx\n", &a.b, a.b); - printf("a.c @ %p = %llx\n\n", &a.c, a.c); - printf("b.a @ %p = %x\n", &b.a, b.a); - printf("b.b @ %p = %llx\n", &b.b, b.b); - printf("b.c @ %p = %llx\n\n", &b.c, b.c); - printf("c.a @ %p = %x\n", &c.a, c.a); - printf("c.b @ %p = %x\n", &c.b, c.b); - printf("c.c @ %p = %llx\n\n", &c.c, c.c); - printf("ma.a @ %p = %x\n", &ma->a, ma->a); - printf("ma.b @ %p = %llx\n", &ma->b, ma->b); - printf("ma.c @ %p = %llx\n\n", &ma->c, ma->c); - printf("ma1.a @ %p = %x\n", &ma1->a, ma1->a); - printf("ma1.b @ %p = %llx\n", &ma1->b, ma1->b); - printf("ma1.c @ %p = %llx\n\n", &ma1->c, ma1->c); + printf("a.a @ offset %d = %x\n", OFFSET(&a, a), a.a); + printf("a.b @ offset %d = %llx\n", OFFSET(&a, b), a.b); + printf("a.c @ offset %d = %llx\n\n", OFFSET(&a, c), a.c); + printf("b.a @ offset %d = %x\n", OFFSET(&b, a), b.a); + printf("b.b @ offset %d = %llx\n", OFFSET(&b, b), b.b); + printf("b.c @ offset %d = %llx\n\n", OFFSET(&b, c), b.c); + printf("c.a @ offset %d = %x\n", OFFSET(&c, a), c.a); + printf("c.b @ offset %d = %x\n", OFFSET(&c, b), c.b); + printf("c.c @ offset %d = %llx\n\n", OFFSET(&c, c), c.c); + printf("ma.a @ offset %d = %x\n", OFFSET(ma, a), ma->a); + printf("ma.b @ offset %d = %llx\n", OFFSET(ma, b), ma->b); + printf("ma.c @ offset %d = %llx\n\n", OFFSET(ma, c), ma->c); + printf("ma1.a @ offset %d = %x\n", OFFSET(ma1, a), ma1->a); + printf("ma1.b @ offset %d = %llx\n", OFFSET(ma1, b), ma1->b); + printf("ma1.c @ offset %d = %llx\n\n", OFFSET(ma1, c), ma1->c); return 0; }