1! { dg-do run } 2! PR95647 operator(.eq.) and operator(==) treated differently 3program test 4 use, intrinsic :: ieee_arithmetic, only : & 5& ieee_class, & 6& ieee_class_type, & 7& ieee_negative_normal, & 8& ieee_positive_normal, & 9& operator(.eq.), operator(.ne.) 10 integer :: good 11 real(4) r4 12 type(ieee_class_type) class1 13 good = 0 14 r4 = 1.0 15 class1 = ieee_class(r4) 16 if (class1 .eq. ieee_positive_normal) good = good + 1 17 if (class1 .ne. ieee_negative_normal) good = good + 1 18 r4 = -1.0 19 class1 = ieee_class(r4) 20 if (class1 .eq. ieee_negative_normal) good = good + 1 21 if (class1 .ne. ieee_positive_normal) good = good + 1 22 if (good /= 4) call abort 23end program test 24 25