Since the problem was already fixed on this branch, we just want to add the
testcase so it does not regress there.
PR tree-optimization/102622
gcc/testsuite/ChangeLog:
* gcc.c-torture/execute/bitfld-10.c: New test.
(cherry picked from commit
882d806c1a8f9d2d2ade1133de88d63e5d4fe40c)
--- /dev/null
+/* PR tree-optimization/102622 */
+/* Wrong code introduced due to phi-opt
+ introducing undefined signed interger overflow
+ with one bit signed integer negation. */
+
+struct f{signed t:1;};
+int g(struct f *a, int t) __attribute__((noipa));
+int g(struct f *a, int t)
+{
+ if (t)
+ a->t = -1;
+ else
+ a->t = 0;
+ int t1 = a->t;
+ if (t1) return 1;
+ return t1;
+}
+
+int main(void)
+{
+ struct f a;
+ if (!g(&a, 1)) __builtin_abort();
+ return 0;
+}