http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50360
Bug #: 50360 Summary: [cleanup] use an ENUM for the return values of gfc_dep_compare_expr Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org CC: bur...@gcc.gnu.org, tkoe...@gcc.gnu.org gfc_dep_compare_expr currently has five possible return values: * +1 if e1 > e2 * 0 if e1 == e2 * -1 if e1 < e2 * -2 if the relationship could not be determined * -3 if e1 /= e2, but we cannot tell which one is larger. Tobias notes in http://gcc.gnu.org/ml/fortran/2011-08/msg00159.html: "Besides that issue, I am wondering whether we shouldn't start to use an ENUM for those. I think for "<" vs. "==" vs. ">" one can use a number (-1, 0, 1) and then compare the result against 0 (>0, == 0 etc.). However, for 5 values, I think it makes sense to do something else otherwise, someone write "... < 0" which not only matches -1 but also -2 or -3." Thomas adds in http://gcc.gnu.org/ml/fortran/2011-08/msg00167.html: "If we really wanted to do this The Right Way, there would be seven cases to be considered, best expressed as three flags. I'll call them CAN_BE_LESS, CAN_BE_EQUAL and CAN_BE_MORE ..."