https://gcc.gnu.org/g:39f89e0daf6933fc888b79aa15f358b145c212ee

commit r11-11582-g39f89e0daf6933fc888b79aa15f358b145c212ee
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Jul 18 09:22:10 2024 +0200

    testsuite: Fix up builtin-clear-padding-3.c for -funsigned-char
    
    As reported on gcc-regression, this test FAILs on aarch64, but my
    r15-2090 change didn't change anything on the generated assembly,
    just added the forgotten dg-do run directive to the test, so the
    test has been failing forever, just we didn't know it.
    
    I can actually reproduce it on x86_64 with -funsigned-char too,
    s2.b.a has int type and -1 is stored to it, so we should compare
    it against -1 rather than (char) -1; the latter is appropriate for
    testing char fields into which we've stored -1.
    
    2024-07-18  Jakub Jelinek  <ja...@redhat.com>
    
            * c-c++-common/torture/builtin-clear-padding-3.c (main): Compare
            s2.b.a against -1 rather than (char) -1.
    
    (cherry picked from commit 958ee138748fae4371e453eb9b357f576abbe83e)

Diff:
---
 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c 
b/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
index 27bf8f6dd734..2c673169e134 100644
--- a/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
+++ b/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
@@ -34,7 +34,7 @@ main ()
   foo (&s1, 0);
   foo (&s2, 0);
   __builtin_clear_padding (&s2);
-  if (s2.b.a != (char) -1)
+  if (s2.b.a != -1)
     __builtin_abort ();
   __builtin_clear_padding (&s2.b.a);
   __builtin_memset (&s2.b.a + 1, 0, sizeof (union U) - sizeof (s2.b.a));

Reply via email to