From: Georg-Johann Lay Date: Wed, 2 Oct 2024 17:09:18 +0000 (+0200) Subject: testsuite/52641 - Make gcc.dg/strict-flex-array-3.c work on int != 32 bits. X-Git-Tag: basepoints/gcc-16~5521 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=77c3ef08e946306329070ea6415abe7d9e328cd6;p=thirdparty%2Fgcc.git testsuite/52641 - Make gcc.dg/strict-flex-array-3.c work on int != 32 bits. PR testsuite/52641 gcc/testsuite/ * gcc.dg/strict-flex-array-3.c (expect) [AVR]: Use custom version due to AVR-LibC limitations. (stuff): Use __SIZEOF_INT__ instead of hard-coded values. --- diff --git a/gcc/testsuite/gcc.dg/strict-flex-array-3.c b/gcc/testsuite/gcc.dg/strict-flex-array-3.c index f74ed96c751..064f779501a 100644 --- a/gcc/testsuite/gcc.dg/strict-flex-array-3.c +++ b/gcc/testsuite/gcc.dg/strict-flex-array-3.c @@ -17,6 +17,21 @@ } \ } while (0); +#ifdef __AVR__ +/* AVR-Libc doesn't support %zd, thus use %d for size_t. */ +#undef expect +#define expect(p, _v) do { \ + size_t v = _v; \ + if (p == v) \ + __builtin_printf ("ok: %s == %d\n", #p, p); \ + else \ + { \ + __builtin_printf ("WAT: %s == %d (expected %d)\n", #p, p, v); \ + FAIL (); \ + } \ +} while (0); +#endif /* AVR */ + struct trailing_array_1 { int a; int b; @@ -46,8 +61,8 @@ void __attribute__((__noinline__)) stuff( struct trailing_array_3 *trailing_0, struct trailing_array_4 *trailing_flex) { - expect(__builtin_object_size(normal->c, 1), 16); - expect(__builtin_object_size(trailing_1->c, 1), 4); + expect(__builtin_object_size(normal->c, 1), 4 * __SIZEOF_INT__); + expect(__builtin_object_size(trailing_1->c, 1), __SIZEOF_INT__); expect(__builtin_object_size(trailing_0->c, 1), 0); expect(__builtin_object_size(trailing_flex->c, 1), -1); }