Hi!

Didn't notice the memmove is into an int variable, so the test
was still failing on big endian.

Committed to trunk as obvious.

2024-07-24  Jakub Jelinek  <ja...@redhat.com>

        PR tree-optimization/116034
        PR testsuite/116061
        * gcc.dg/pr116034.c (g): Change type from int to unsigned short.
        (foo): Guard memmove call on __SIZEOF_SHORT__ == 2.

--- gcc/testsuite/gcc.dg/pr116034.c.jj  2024-07-23 10:50:10.878953531 +0200
+++ gcc/testsuite/gcc.dg/pr116034.c     2024-07-24 17:57:37.377829853 +0200
@@ -2,12 +2,13 @@
 /* { dg-do run } */
 /* { dg-options "-O1 -fno-strict-aliasing" } */
 
-int g;
+unsigned short int g;
 
 static inline int
 foo (_Complex unsigned short c)
 {
-  __builtin_memmove (&g, 1 + (char *) &c, 2);
+  if (__SIZEOF_SHORT__ == 2)
+    __builtin_memmove (&g, 1 + (char *) &c, 2);
   return g;
 }
 

        Jakub

Reply via email to