Try -fdump-parse-tree. You've given more digits in y than its precision. This is permitted by the standard. It appears the gfortran frontend is taking y = 0.499999 and the closest representable nubmer is y = 0.5.
So, why does the test y < 0.5 yield true then?