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