>Number: 5994 >Category: libstdc++ >Synopsis: operator>>() produces incorrect value >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon Mar 18 01:36:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: >Release: 3.0.4 >Organization: >Environment: System: SunOS kveikur 5.8 Generic_108528-05 sun4u sparc SUNW,Ultra-5_10 Architecture: sun4
host: sparc-sun-solaris2.8 build: sparc-sun-solaris2.8 target: sparc-sun-solaris2.8 configured with: ./configure --prefix=/opt/test --with-ld=/opt/test/bin/ld --with-gnu-ld --enable-languages=c,c++ >Description: #include <string> #include <iostream> #include <strstream> void foo(std::string const & arg) { } int main() { std::string arg("9"); unsigned long level; std::istrstream is(arg.c_str()); is >> level; std::cout << level << '\n'; return 0; } >How-To-Repeat: Compile and execute the program above. When I run it the result is 262144 instead of 9. >Fix: >Release-Note: >Audit-Trail: >Unformatted: