Fix floating point false positive on x86_32
This is needed for some functions in FFmpeg that directly return floating point values. Improve on the FFmpeg design by also automatically picking the correct check function based on the actual return type, using C11 generics (where available).
Edited by Niklas Haas