aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/20030821-1.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030821-1.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030821-1.c b/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
new file mode 100644
index 00000000000..34700ae181f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
@@ -0,0 +1,24 @@
+/* PR target/11805. */
+
+/* Consider the following sequence.
+
+ (set (cc0)
+ (and:HI (reg:HI 0)
+ (const_int 1)))
+
+ (set (pc)
+ (if_then_else (le (cc0)
+ (const_int 0))
+ (label_ref 17)
+ (pc)))
+
+ On h8300, the first insn does not set the overflow flag, but the
+ second requires the overflow flag. As a result, when the final
+ wants to output the jump insn, it cannot find a test insn that
+ gives appropriate condition flags. */
+
+unsigned char
+foo (unsigned char a)
+{
+ return (a & 1) > 0;
+}