delcypher added inline comments.

================
Comment at: lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp:559
+      Float.toString(Chars, 0, 0);
+      AST = Z3_mk_numeral(Z3Context::ZC, Chars.c_str(), Sort);
+      break;
----------------
ddcc wrote:
> delcypher wrote:
> > @ddcc I'm not convinced this is a good idea. Printing as a decimal string 
> > could lead to rounding errors. I think you're better of getting an APInt 
> > from the APFloat, constructing a bitvector constant from those bits and 
> > then using `Z3_mk_fpa_to_fp_bv()` to get a Z3Expr of the right sort. That 
> > was we are being bit-wise accurate.
> From the comments inside `APFloat::toString()`, this should be precise enough 
> to round-trip from float to string and back again with no loss of precision. 
> However, the I agree that bitcasting makes more sense, especially given the 
> overhead of string conversion.
The APFloat comments claim this but[[ 
https://bugs.llvm.org/show_bug.cgi?id=24539 |  I've found at least one case 
where this does not hold ]] in the current implementation.


https://reviews.llvm.org/D28952



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to