[gcc r16-6486] testsuite: Create a variant of uninit-pred-7_a.c [PR123377]
Andrew Pinski
pinskia@gcc.gnu.org
Sun Jan 4 18:19:19 GMT 2026
https://gcc.gnu.org/g:bcde241ac56de6e168fc16f778be60ff13bbcbca
commit r16-6486-gbcde241ac56de6e168fc16f778be60ff13bbcbca
Author: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
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 <andrew.pinski@oss.qualcomm.com>
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;
+}
More information about the Gcc-cvs
mailing list