These code:
long i = 222222222222L; float a = 222222222222L: float b = a + i;
Will now issue warnings:
line 2: implicit conversion from 'long' to 'float' changes value from 222222222222 to 222222221312 [-Wimplicit-float-conversion] line 3: implicit conversion from 'long' to 'float' may lose precision. [-Wimplicit-float-conversion]
The same feature is present in GCC but not currently in clang.
clang-tidy currently doesn't have this warning as well.