Bug#561685: gcj-jdk: class PrintStream method printf doesn't print floats
Package: gcj-jdk
Version: 4:4.4.2-2
Severity: normal
This test program
class Test {
public static void main(String argv[]) {
Object args[] = {
new Float(0.0001),
};
System.err.printf("%f\n", args);
}
}
produces no output when compiled with gcj (gcj Test.java --main=Test
-o Test) and run (./Test).
The correct output is produced when the bytecode is produced by javac
and run with the java virtual machine:
% javac Test.java
% java Test
0.000100
printf is generally messed up anyway. The %x format insists on
printing 64 bit numbers even when given 32 bit integers as feed, and
it sign-extends them all, reulting in 0xffffffff80000000 output from
integer 0x8000000.
And %g doesn't print anything either.
-- System Information:
LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch
Distributor ID: Ubuntu
Description: Ubuntu 8.04.1
Release: 8.04
Codename: hardyArchitecture: i386 (i686)
Kernel: Linux 2.6.31.2-SMP (SMP w/1 CPU core; PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/bash
Versions of packages gcj-jdk depends on:
ii gcj-4.4-jdk 4.4.2-4 gcj and classpath development tool
ii gcj-jre 4:4.4.2-2 Java runtime environment using GIJ
ii libgcj-common 1:4.4.2-2 Java runtime library (common files
gcj-jdk recommends no packages.
gcj-jdk suggests no packages.
-- no debconf information
Reply to: