]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite/115827 - avoid false negative because of CCP
authorRichard Biener <rguenther@suse.de>
Fri, 13 Feb 2026 14:16:28 +0000 (15:16 +0100)
committerRichard Biener <rguenther@suse.de>
Fri, 13 Feb 2026 14:28:16 +0000 (15:28 +0100)
The following adjusts two uninit testcases to avoid a false negative
that appears when using -msoft-float on arm because the testcase
then mutates into a classical case of CCP eliding

  # _11 = PHI <1.0e+0(2), f$real_9(D)(3)>

Avoid this by using a non-constant.  And avoid flipping locations
for the diagnostic by not duplicating the return statement.

PR testsuite/115827
* gcc.dg/auto-init-uninit-17.c: Avoid CCP.
* gcc.dg/uninit-17.c: Likewise.

gcc/testsuite/gcc.dg/auto-init-uninit-17.c
gcc/testsuite/gcc.dg/uninit-17.c

index 9eec9440c75edc787ba37f68c0ed994faec9add0..d76227abbe411c29e5242460e7cd39000103c033 100644 (file)
@@ -2,14 +2,11 @@
 /* { dg-options "-O -Wuninitialized -ftrivial-auto-var-init=zero" } */
 
 typedef _Complex float C;
-C foo(int cond)
+C foo(int cond, float r)
 {
   C f;
   __imag__ f = 0;
   if (cond)
-    {
-      __real__ f = 1;
-      return f;
-    }
+    __real__ f = r; /* No constant to avoid a CCP induced false negative. */
   return f;    /* { dg-warning "may be used" "unconditional" } */
 }
index 8a95f15c5ae6c19421abb9a5301061b1d46e4374..ebf2cae0ec27916e1047e25a93c8db73587ec3d5 100644 (file)
@@ -2,14 +2,11 @@
 /* { dg-options "-O -Wuninitialized" } */
 
 typedef _Complex float C;
-C foo(int cond)
+C foo(int cond, float r)
 {
   C f;
   __imag__ f = 0;
   if (cond)
-    {
-      __real__ f = 1;
-      return f;
-    }
+    __real__ f = r; /* No constant to avoid a CCP induced false negative. */
   return f;    /* { dg-warning "may be used" "unconditional" } */
 }