https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95647
--- Comment #8 from Jerry DeLisle <jvdelisle at charter dot net> --- (In reply to Jerry DeLisle from comment #6) > (In reply to Bill Long from comment #5) > > Is this fixed in a release version of GCC? > > Submitting patch for approval and will backport as the fix is simple. How > far back shall we go? 10 for sure. Eyeballing the time lines, it does not > look like 9 will have any more releases. If someone knows otherwise, let me > know. While putting together a test case, I found another problem. program test use, intrinsic :: ieee_arithmetic, only : & & ieee_class, & & ieee_class_type, & & ieee_negative_normal, & & ieee_positive_normal, & & operator(.eq.) ! use, intrinsic :: ieee_arithmetic real(4) r4 type(ieee_class_type) class1 r4 = 1.0 class1 = ieee_class(r4) if (class1 .eq. ieee_positive_normal) print *, 'yes' if (class1 .ne. ieee_negative_normal) print *, 'yes' r4 = -1.0 class1 = ieee_class(r4) if (class1 .eq. ieee_negative_normal) print *, 'yes' if (class1 .ne. ieee_positive_normal) print *, 'yes' end program test $ gfc pr95647.f90 pr95647.f90:14:6: 14 | if (class1 .ne. ieee_negative_normal) print *, 'yes' | 1 Error: Operands of comparison operator ‘.ne.’ at (1) are TYPE(ieee_class_type)/TYPE(ieee_class_type) pr95647.f90:18:6: 18 | if (class1 .ne. ieee_positive_normal) print *, 'yes' | 1 Error: Operands of comparison operator ‘.ne.’ at (1) are TYPE(ieee_class_type)/TYPE(ieee_class_type) There is more to the story apparently