# HG changeset patch # User Paul Boddie # Date 1669938535 -3600 # Node ID 4c2ca0e1bc850d4f06df1649a299c0ddb7d55127 # Parent ee511ba199afb0c6c3a5a7c66a168b1217fc2fe2 Fixed various format specifiers. diff -r ee511ba199af -r 4c2ca0e1bc85 libsystypes/include/systypes/format.h --- a/libsystypes/include/systypes/format.h Thu Dec 01 17:55:12 2022 +0100 +++ b/libsystypes/include/systypes/format.h Fri Dec 02 00:48:55 2022 +0100 @@ -37,6 +37,14 @@ /* See: systypes/base.h */ -#define pFMToffset pFMT64 +#define pFMToffset "ll" + +/* Alternative for size_t or ssize_t (%z). */ + +#if __WORDSIZE == 32 +#define pFMTsize pFMT32 +#else +#define pFMTsize "l" +#endif // vim: tabstop=2 expandtab shiftwidth=2 diff -r ee511ba199af -r 4c2ca0e1bc85 tests/dstest_align.cc --- a/tests/dstest_align.cc Thu Dec 01 17:55:12 2022 +0100 +++ b/tests/dstest_align.cc Fri Dec 02 00:48:55 2022 +0100 @@ -2,6 +2,7 @@ #include #include +#define FMTsize "%" pFMTsize "d" #define FMT32x "%" pFMT32 "x" #define FMT64x "%" pFMT64 "x" #define OFFSET(obj, mem) ((char *) &(obj)->mem - (char *) obj) @@ -38,21 +39,21 @@ struct A *ma = (struct A *) m; struct A *ma1 = (struct A *) (m + 1); - printf("a.a @ offset %d = " FMT32x "\n", OFFSET(&a, a), a.a); - printf("a.b @ offset %d = " FMT64x "\n", OFFSET(&a, b), a.b); - printf("a.c @ offset %d = " FMT64x "\n\n", OFFSET(&a, c), a.c); - printf("b.a @ offset %d = " FMT32x "\n", OFFSET(&b, a), b.a); - printf("b.b @ offset %d = " FMT64x "\n", OFFSET(&b, b), b.b); - printf("b.c @ offset %d = " FMT64x "\n\n", OFFSET(&b, c), b.c); - printf("c.a @ offset %d = " FMT32x "\n", OFFSET(&c, a), c.a); - printf("c.b @ offset %d = " FMT32x "\n", OFFSET(&c, b), c.b); - printf("c.c @ offset %d = " FMT64x "\n\n", OFFSET(&c, c), c.c); - printf("ma.a @ offset %d = " FMT32x "\n", OFFSET(ma, a), ma->a); - printf("ma.b @ offset %d = " FMT64x "\n", OFFSET(ma, b), ma->b); - printf("ma.c @ offset %d = " FMT64x "\n\n", OFFSET(ma, c), ma->c); - printf("ma1.a @ offset %d = " FMT32x "\n", OFFSET(ma1, a), ma1->a); - printf("ma1.b @ offset %d = " FMT64x "\n", OFFSET(ma1, b), ma1->b); - printf("ma1.c @ offset %d = " FMT64x "\n\n", OFFSET(ma1, c), ma1->c); + printf("a.a @ offset " FMTsize " = " FMT32x "\n", OFFSET(&a, a), a.a); + printf("a.b @ offset " FMTsize " = " FMT64x "\n", OFFSET(&a, b), a.b); + printf("a.c @ offset " FMTsize " = " FMT64x "\n\n", OFFSET(&a, c), a.c); + printf("b.a @ offset " FMTsize " = " FMT32x "\n", OFFSET(&b, a), b.a); + printf("b.b @ offset " FMTsize " = " FMT64x "\n", OFFSET(&b, b), b.b); + printf("b.c @ offset " FMTsize " = " FMT64x "\n\n", OFFSET(&b, c), b.c); + printf("c.a @ offset " FMTsize " = " FMT32x "\n", OFFSET(&c, a), c.a); + printf("c.b @ offset " FMTsize " = " FMT32x "\n", OFFSET(&c, b), c.b); + printf("c.c @ offset " FMTsize " = " FMT64x "\n\n", OFFSET(&c, c), c.c); + printf("ma.a @ offset " FMTsize " = " FMT32x "\n", OFFSET(ma, a), ma->a); + printf("ma.b @ offset " FMTsize " = " FMT64x "\n", OFFSET(ma, b), ma->b); + printf("ma.c @ offset " FMTsize " = " FMT64x "\n\n", OFFSET(ma, c), ma->c); + printf("ma1.a @ offset " FMTsize " = " FMT32x "\n", OFFSET(ma1, a), ma1->a); + printf("ma1.b @ offset " FMTsize " = " FMT64x "\n", OFFSET(ma1, b), ma1->b); + printf("ma1.c @ offset " FMTsize " = " FMT64x "\n\n", OFFSET(ma1, c), ma1->c); return 0; }