https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120231
--- Comment #2 from Andrew Macleod <amacleod at redhat dot com> --- We do not have cast operators between int and float. We are also missing some dispatch code for them as we haven't actually used some of those patterns yet. I am going to checked in a patch to trunk shortly using this PR as a tag. It supplies the needed patterns and blank versions of the required operator methods for each cast. These are located near the bottom of range-op-float.cc. These functions currently return false, which is the default behaviour if the functions did not exist. // Cast Float to Integer bool operator_cast::fold_range (irange &lhs, tree type, const frange &op1, const irange &, relation_trio) const; bool operator_cast::op1_range (frange &op1, tree type, const irange &lhs, const irange &, relation_trio) const; // Cast Integer to Float. bool operator_cast::fold_range (frange &lhs, tree type, const irange &op1, const frange &, relation_trio) const; bool operator_cast::op1_range (irange &op1, tree type, const frange &lhs, const frange &, relation_trio) const; Feel free to populate them for this PR. If I get a chance and no one else does, I may do some simple population. but it wont be complex since I'm not familiar with working on floats.