aaron.ballman closed this revision. aaron.ballman added a comment. Thanks! I've commit in r256643.
================ Comment at: test/SemaCXX/warn-literal-conversion.cpp:49-50 @@ +48,4 @@ + // values. + bool b3 = 0.0f; + bool b4 = 0.0; +} ---------------- rsmith wrote: > What about > > bool b5 = 1.0; > bool b6 = 2.0; > > ? Arguably any `float` -> `bool` conversion changes the value (because `true` > and `false` are not values of type `float`), so it wouldn't be completely > unreasonable to warn even if the literal is `0.0`. Except those conversions won't cause confusion to the user, so I'm not certain what we gain by diagnosing. Given that some mental models expect 0.99 to convert to 0, which converts to false (because bool is an integral type, so it "must" do the usual integral truncation dance), it makes sense to tell the user "no no no, that converts to true." I'm less convinced about the utility of warning on things like `bool b = 1.99f' where it changes the value from 1.99 to true. Perhaps this should be changed to only diagnose when converting through an integer would result in a different value that converting through the float? http://reviews.llvm.org/D15814 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits