libstdc++/8887: locale
dmitry_belous@ua.fm
dmitry_belous@ua.fm
Tue Dec 10 00:56:00 GMT 2002
>Number: 8887
>Category: libstdc++
>Synopsis: locale
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Dec 10 00:56:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: dmitry_belous@ua.fm
>Release: 3.2 20020818 (prerelease)
>Organization:
>Environment:
System: W2K
Architecture: i686
host: i686-pc-cygwin
build: i686-pc-cygwin
target: i686-pc-cygwin
>Description:
Class time_get<> is not corresponding to time_put<>.
Source documentation
`22 - Localization library [lib.localization]',
section 22.2.5.1 (-1-) && 22.2.5.1.2 (-4-).
For example, running the following program tnum should
print like dates.
>How-To-Repeat:
#include <locale>
#include <sstream>
#include <iostream>
int main()
{
using namespace std;
tm* lt = localtime(&time(0));
try {
const time_put<char>& tp = use_facet<time_put<char> >(locale());
const time_get<char>& tg = use_facet<time_get<char> >(locale());
ostringstream os;
tp.put(os, os, os.fill(), lt, 'x');
cout << os.str() << endl;
istringstream is(os.str());
istreambuf_iterator<char> end;
ios_base::iostate err = ios_base::goodbit;
tm x = {0};
tg.get_date(is, end, is, err, &x);
tp.put(cout, cout, cout.fill(), &x, 'x');
} catch(...) {
cerr << "error" << endl;
}
}
g++ -ansi -v -o main.exe main.cpp -W -Wall -g
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.2/specs
Configured with: /netrel/src/gcc-3.2-1/configure --enable-languages=c,c++,f77,java --enable-libgcj --enable-threads=posix --with-system-zlib --enable-nls --without-included-gettext --enable-interpreter --disable-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --build=i686-pc-linux --host=i686-pc-cygwin --target=i686-pc-cygwin --enable-haifa --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --includedir=/nonexistent/include --libexecdir=/usr/sbin
Thread model: posix
gcc version 3.2 20020818 (prerelease)
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/cc1plus.exe -v -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D_X86_=1 -Asystem=winnt -D__NO_INLINE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ -D__tune_pentium2__ -D__tune_pentium3__ -D__stdcall=__attribute__((__stdcall__)) -D__fastcall=__attribute__((__fastcall__)) -D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x)) -D__i386__ -D__i386 -D__CYGWIN32__ -D__CYGWIN__ -D__unix__ -D__unix -isystem /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../include/w32api -isystem /usr/local/lib/../../include/w32api main.cpp -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__STRICT_ANSI__ -trigraphs -$ -quiet -dumpbase main.cpp -ansi -g -W -Wall -ansi -version -o /tmp/ccdCW2C3.s
GNU CPP version 3.2 20020818 (prerelease) (cpplib) (80386, BSD syntax)
GNU C++ version 3.2 20020818 (prerelease) (i686-pc-cygwin)
compiled by GNU C version 3.2 20020815 (prerelease).
ignoring nonexistent directory "/usr/i686-pc-cygwin/include"
ignoring duplicate directory "/usr/include/w32api"
#include "..." search starts here:
#include <...> search starts here:
.
/usr/include/libxml2
/usr/include/w32api
/usr/include/c++/3.2
/usr/include/c++/3.2/i686-pc-cygwin
/usr/include/c++/3.2/backward
/usr/local/include
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/include
/usr/include
End of search list.
main.cpp: In function `int main()':
main.cpp:8: non-lvalue in unary `&'
main.cpp:18: warning: missing initializer for member `tm::tm_min'
main.cpp:18: warning: missing initializer for member `tm::tm_hour'
main.cpp:18: warning: missing initializer for member `tm::tm_mday'
main.cpp:18: warning: missing initializer for member `tm::tm_mon'
main.cpp:18: warning: missing initializer for member `tm::tm_year'
main.cpp:18: warning: missing initializer for member `tm::tm_wday'
main.cpp:18: warning: missing initializer for member `tm::tm_yday'
main.cpp:18: warning: missing initializer for member `tm::tm_isdst'
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-prs
mailing list