https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69495
--- Comment #8 from janus at gcc dot gnu.org --- (In reply to Manuel López-Ibáñez from comment #2) > Im sure there are more... One more case that I just ran across by coincidence (from resolve.c): if (warn_compare_reals) { gfc_intrinsic_op op = e->value.op.op; /* Type conversion has made sure that the types of op1 and op2 agree, so it is only necessary to check the first one. */ if ((op1->ts.type == BT_REAL || op1->ts.type == BT_COMPLEX) && (op == INTRINSIC_EQ || op == INTRINSIC_EQ_OS || op == INTRINSIC_NE || op == INTRINSIC_NE_OS)) { const char *msg; if (op == INTRINSIC_EQ || op == INTRINSIC_EQ_OS) msg = "Equality comparison for %s at %L"; else msg = "Inequality comparison for %s at %L"; gfc_warning (0, msg, gfc_typename (&op1->ts), &op1->where); } }