https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109145

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, I think we can either use:
2023-03-16  Jakub Jelinek  <ja...@redhat.com>

        PR testsuite/109145
        * gcc.dg/tree-ssa/forwprop-39.c (CMPLXF): Define if not defined.

--- gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c.jj      2023-03-13
10:18:59.545433477 +0100
+++ gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c 2023-03-16 18:48:04.408908088
+0100
@@ -3,6 +3,10 @@

 #include <complex.h>

+#ifndef CMPLXF
+#define CMPLXF(x, y) __builtin_complex (x, y)
+#endif
+
 extern void push1(void *p, float _Complex x);
 void foo (void *q, float _Complex *x)
 {
or
2023-03-16  Jakub Jelinek  <ja...@redhat.com>

        PR testsuite/109145
        * gcc.dg/tree-ssa/forwprop-39.c: Don't include complex.h.
        (foo): Use __builtin_complex rather than CMPLXF.

--- gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c.jj      2023-03-13
10:18:59.545433477 +0100
+++ gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c 2023-03-16 18:49:40.563504504
+0100
@@ -1,14 +1,12 @@
 /* { dg-do compile } */
 /* { dg-options "-std=c11 -O2 -fdump-tree-forwprop1 -fdump-tree-optimized" }
*/

-#include <complex.h>
-
 extern void push1(void *p, float _Complex x);
 void foo (void *q, float _Complex *x)
 {
   float r = __real *x;
   float i = __imag *x;
-  push1 (q, CMPLXF (r, i));
+  push1 (q, __builtin_complex (r, i));
 }

 /* { dg-final { scan-tree-dump-not "COMPLEX_EXPR" "forwprop1" } } */

I think my preference would be the latter...

Reply via email to