Bug 15099 - JvCreateJavaVM(NULL) make string to float conversion fail
Summary: JvCreateJavaVM(NULL) make string to float conversion fail
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: libgcj (show other bugs)
Version: 3.3.1
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-23 12:08 UTC by Johan Baltié
Modified: 2005-07-23 22:49 UTC (History)
2 users (show)

See Also:
Host: i586-mandrake-linux
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
Preprocessed file. (102.35 KB, text/plain)
2004-04-23 12:10 UTC, Johan Baltié
Details
Program that does create the bug (242 bytes, text/plain)
2004-04-23 12:29 UTC, Johan Baltié
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Johan Baltié 2004-04-23 12:08:50 UTC
The program:

int main()
{
    string test1 = "3.859155991718317e-06";


    cout << test1
         << " - "
         << test1.c_str()
         << " - "
         << std::atof(test1.c_str()) << endl;
    JvCreateJavaVM(__null);
    cout << test1
         << " - "
         << test1.c_str()
         << " - "
         << std::atof(test1.c_str()) << endl;
    JvDetachCurrentThread();

    cout << test1
         << " - "
         << test1.c_str()
         << " - "
         << std::atof(test1.c_str()) << endl;


  return (0);
}

gives as an output:

3.859155991718317e-06 - 3.859155991718317e-06 - 3.85916e-06
3.859155991718317e-06 - 3.859155991718317e-06 - 3
3.859155991718317e-06 - 3.859155991718317e-06 - 3

Clearly once the VM is created no string to float conversion works.
Comment 1 Johan Baltié 2004-04-23 12:10:47 UTC
Created attachment 6150 [details]
Preprocessed file.

Result of "g++ -save-temps -I /usr/include/libgcj-3.3.1 -lgcj test.cc"
Comment 2 Andrew Pinski 2004-04-23 12:26:44 UTC
Can you provide the __non__ preprocessed source?  Also can you try 3.4.0 while you are at it?
Comment 3 Johan Baltié 2004-04-23 12:29:03 UTC
Created attachment 6151 [details]
Program that does create the bug

Output of this program:

3.859155991718317e-06 - 3.859155991718317e-06 - 3.85916e-06
3.859155991718317e-06 - 3.859155991718317e-06 - 3
3.859155991718317e-06 - 3.859155991718317e-06 - 3
Comment 4 Johan Baltié 2004-04-23 12:33:37 UTC
I cannot use the 3.4.0 version for now because I'm not "able" to install it in a
proper way (I'm not admin and installing a new compiler in a local already led
to problem last time we've done it).
Comment 5 Andrew Pinski 2004-04-23 12:48:17 UTC
I cannot reproduce it on i686-pc-linux-gnu running Redhat 7.3, running glibc 2.2.5 on 3.4.0, 3.3.3 or 
3.5.0, so this is problem in your glibc because atof should be using the C locale always (read the C 
standard). There is no way around it, sorry except for updating your version of glibc.