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

Reply via email to