From 9b2e643a901c14195d2ff28e7b38d87f692e955c Mon Sep 17 00:00:00 2001 From: eigold Date: Mon, 26 Jun 2017 16:05:48 -0400 Subject: [PATCH] generation of hexadecimal floating point numbers in tests (squashed) removed an accidental change, added code to process special cases: NaN and infiinity made required simplications, made corrections in treatment of special cases --- src/java_bytecode/expr2java.cpp | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/java_bytecode/expr2java.cpp b/src/java_bytecode/expr2java.cpp index daa89f21a98..60bc6273dae 100644 --- a/src/java_bytecode/expr2java.cpp +++ b/src/java_bytecode/expr2java.cpp @@ -8,12 +8,14 @@ Author: Daniel Kroening, kroening@cs.cmu.edu #include +#include #include #include #include #include #include +#include #include #include @@ -235,6 +237,63 @@ std::string expr2javat::convert_constant( dest+='L'; return dest; } + else if((src.type()==java_float_type()) || + (src.type()==java_double_type())) + { + ieee_floatt ieee_repr(to_constant_expr(src)); + std::string result; + + bool float_flag=(src.type()==java_float_type()); + if(ieee_repr.is_zero()) + { + result+='0'; + format_spect fs; + if(fs.precision>0) + { + result+='.'; + for(std::size_t i=0; i