Thanks for bringing this up. When --float is passed, programs generated by Csmith are not supposed to be undefined-behavior-free. The big issue falls into the same category as you mentioned - possible overflow due to converting a large floating-point value to an integer value. I believe there must be some other overflow cases besides the one that you pointed out.
I just pushed a commit trying to fix your particular case. Hopefully it would meet your need and unblock your work at the moment. Thanks.