]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite/52641 - Make gcc.dg/strict-flex-array-3.c work on int != 32 bits.
authorGeorg-Johann Lay <avr@gjlay.de>
Wed, 2 Oct 2024 17:09:18 +0000 (19:09 +0200)
committerGeorg-Johann Lay <avr@gjlay.de>
Wed, 2 Oct 2024 17:09:18 +0000 (19:09 +0200)
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.

gcc/testsuite/gcc.dg/strict-flex-array-3.c

index f74ed96c751c04947752298cb39ad8ed3ed48ba1..064f779501a8d0a83a8b750a1fc017d20aa8b4a4 100644 (file)
        } \
 } 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);
 }