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