lebedev.ri accepted this revision. lebedev.ri added a comment. This revision is now accepted and ready to land.
Overall makes sense to me. ================ Comment at: docs/ReleaseNotes.rst:94 + :option:`-fno-strict-float-cast-overflow` - + When a floating-point value is not representable in a casted-to integer + type, the code has undefined behavior according to the language standard. ---------------- ``` - in a casted-to integer type + in destination integer type ``` ? ================ Comment at: docs/ReleaseNotes.rst:96 + type, the code has undefined behavior according to the language standard. + Clang will not guarantee any particular result in that event. With the + 'no-strict' option, Clang attempts to match the overflowing behavior of ---------------- s/event/case/ ? ================ Comment at: docs/UsersManual.rst:1260 - Enable a workaround for code that casts floating-point values to - integers and back to floating-point. If the floating-point value - is not representable in the intermediate integer type, the code is - incorrect according to the language standard. This flag will attempt - to generate code as if the result of an overflowing conversion matches - the overflowing behavior of a target's native float-to-int conversion - instructions. + When a floating-point value is not representable in a casted-to integer + type, the code has undefined behavior according to the language standard. ---------------- same ================ Comment at: docs/UsersManual.rst:1262 + type, the code has undefined behavior according to the language standard. + Clang will not guarantee any particular result in that event. With the + 'no-strict' option, Clang attempts to match the overflowing behavior of ---------------- same ================ Comment at: include/clang/Driver/Options.td:1033 +def fstrict_float_cast_overflow : Flag<["-"], + "fstrict-float-cast-overflow">, Group<f_Group>, Flags<[CC1Option]>; +def fno_strict_float_cast_overflow : Flag<["-"], ---------------- Maybe add `HelpText<"">` to both of them, just to explain what they are, specify that the first is the default, and the second relaxes language rules to help broken code. ================ Comment at: test/CodeGen/no-junk-ftrunc.c:7 // RUN: %clang_cc1 -S %s -emit-llvm -o - | FileCheck %s --check-prefix=DEFAULT // DEFAULT-LABEL: main ---------------- It wouldn't hurt to duplicate this run-line, and explicitly pass `-fno-strict-float-cast-overflow`. https://reviews.llvm.org/D46236 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits