https://gcc.gnu.org/g:bcde241ac56de6e168fc16f778be60ff13bbcbca

commit r16-6486-gbcde241ac56de6e168fc16f778be60ff13bbcbca
Author: Andrew Pinski <[email protected]>
Date:   Fri Jan 2 21:25:12 2026 -0800

    testsuite: Create a variant of uninit-pred-7_a.c [PR123377]
    
    So it turns out the xfail uninit-pred-7_a.c didn't always happen
    depending on the setting of logical-op-non-short-circuit.
    So this creates a second copy of the testcase for the case
    of `logical-op-non-short-circuit=0` without the xfail and then sets
    `logical-op-non-short-circuit=1` for uninit-pred-7_a.c with still
    the xfail.
    
    Tested on x86_64-linux-gnu to make sure both pass and uninit-pred-7_a.c
    xfails like it should. Also tested manually on powerpc64-linux-gnu to
    see the bogus warning happen with logical-op-non-short-circuit=1.
    
            PR testsuite/123377
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/uninit-pred-7_a.c: Add
            `--param logical-op-non-short-circuit=1` to the options.
            * gcc.dg/uninit-pred-7_a_a.c: New test.
    
    Signed-off-by: Andrew Pinski <[email protected]>

Diff:
---
 gcc/testsuite/gcc.dg/uninit-pred-7_a.c   |  3 +-
 gcc/testsuite/gcc.dg/uninit-pred-7_a_a.c | 53 ++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/uninit-pred-7_a.c 
b/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
index 7aaadf7def75..5dd92176c8f6 100644
--- a/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
+++ b/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
@@ -1,6 +1,5 @@
-
 /* { dg-do compile } */
-/* { dg-options "-Wuninitialized -O2" } */
+/* { dg-options "-Wuninitialized -O2 --param logical-op-non-short-circuit=1" } 
*/
 
 int g;
 void bar();
diff --git a/gcc/testsuite/gcc.dg/uninit-pred-7_a_a.c 
b/gcc/testsuite/gcc.dg/uninit-pred-7_a_a.c
new file mode 100644
index 000000000000..223f6747610c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/uninit-pred-7_a_a.c
@@ -0,0 +1,53 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2 --param logical-op-non-short-circuit=0" } 
*/
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+  int v;
+
+  if (n || l)
+    v = r;
+
+  if (m) g++;
+  else   bar();
+
+  if ( n && l)
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+  if ( n )
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning"  } */
+
+  if ( l )
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+  return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+  int v;
+
+  if (n || l)
+    v = r;
+
+  if (m) g++;
+  else   bar();
+
+  if ( n && l)
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+  if ( n )
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+  if (m || l)
+      blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+  if ( l )
+      blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+  return 0;
+}

Reply via email to