https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106510

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-08-02
             Status|UNCONFIRMED                 |NEW
                 CC|                            |amacleod at redhat dot com
     Ever confirmed|0                           |1

--- Comment #5 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
BTW, (In reply to David Binderman from comment #1)
> Reduced C code seems to be:
> 
> void ine_ok() {
>   float y, x;
>   if (x < y || x > y || y)
>     abort();
> }
> 
> Same problem exists on native x86_64, so I will have a go at finding a git
> range.

BTW, test exhibits undefined behavior, though putting x and y as arguments also
ICEs.

GORI wants all the relational operators defined, and is asserting so.

What's missing is the LGBT operator ;-).

diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc
index 4fbd96a7479..1725c73e39c 100644
--- a/gcc/range-op-float.cc
+++ b/gcc/range-op-float.cc
@@ -747,6 +747,7 @@ floating_op_table::floating_op_table ()
   set (UNGE_EXPR, fop_relop_unknown);
   set (UNGT_EXPR, fop_relop_unknown);
   set (UNEQ_EXPR, fop_relop_unknown);
+  set (LTGT_EXPR, fop_relop_unknown);
   set (ORDERED_EXPR, fop_ordered);
   set (UNORDERED_EXPR, fop_unordered);
 }

I won't be able to get to this today.  If someone could test and push, it'd be
great.  Otherwise, I'll get to it tomorrow.

Reply via email to