diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2002-10-01 19:13:12 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2002-10-01 19:13:12 +0000 |
commit | 6f7e9e94497e08e6efba3b3793fea5eb7f17ad8e (patch) | |
tree | 304e594d569cf875f5c6f04bf21588735a992445 /gcc/java/jcf-dump.c | |
parent | 73a737681502c4880bee7b1825a4ff0c30f97e79 (diff) | |
download | gcc-6f7e9e94497e08e6efba3b3793fea5eb7f17ad8e.zip gcc-6f7e9e94497e08e6efba3b3793fea5eb7f17ad8e.tar.gz gcc-6f7e9e94497e08e6efba3b3793fea5eb7f17ad8e.tar.bz2 |
jcf-dump.c (print_constant, [...]): Don't fall foul of type-based aliasing.
* jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
foul of type-based aliasing.
From-SVN: r57699
Diffstat (limited to 'gcc/java/jcf-dump.c')
-rw-r--r-- | gcc/java/jcf-dump.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c index 13a177d..2824a6b 100644 --- a/gcc/java/jcf-dump.c +++ b/gcc/java/jcf-dump.c @@ -504,10 +504,18 @@ DEFUN(print_constant, (out, jcf, index, verbosity), break; case CONSTANT_Float: { - jfloat fnum = JPOOL_FLOAT (jcf, index); - fprintf (out, "%s%.10g", verbosity > 0 ? "Float " : "", (double) fnum); + union + { + jfloat f; + int32 i; + } pun; + + pun.f = JPOOL_FLOAT (jcf, index); + fprintf (out, "%s%.10g", + verbosity > 0 ? "Float " : "", (double) pun.f); if (verbosity > 1) - fprintf (out, ", bits = 0x%08lx", (long) (* (int32 *) &fnum)); + fprintf (out, ", bits = 0x%08lx", (long) pun.i); + break; } case CONSTANT_Double: |