This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libstdc++/5530: Problems with named locales LANG=fr_FR



>Number:         5530
>Category:       libstdc++
>Synopsis:       Problems with named locales LANG=fr_FR
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 29 06:06:03 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Peter Schmid
>Release:        3.1 20020128 (experimental)
>Organization:
TU Darmstadt
>Environment:
System: Linux kiste 2.4.17 #7 Thu Jan 3 17:21:51 CET 2002 i686 unknown
Architecture: i686
SuSE 7.3
glibc 2.2.4 + patches
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc
>Description:
There are new problems with named locales. When I take the test case
included in PR/libstdc++ 5280 and set LANG=fr_FR, the program does not
run normally. It comsumes all virtual memory until it is killed by
the kernel, a killed message appears. If I remember correctly the
program worked when I last tried about a week ago.  

>How-To-Repeat:
source code tl.C

#include <iostream>
#include <locale>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
  locale coutLocale("");
  cout.imbue(coutLocale);
  string s;
  cin >> s;
  if (!cin) {
    cerr << "ERROR while reading the locale" << endl;
    return EXIT_FAILURE;
  }
  

  locale cinLocale(s.c_str());
  cin.imbue(cinLocale);

  cout << "cout locale: " << coutLocale.name() << endl;
  cout << "cin locale: " << cinLocale.name() << endl;
  double value;
  while (cin >> value) {
    cout << value << endl;
  }
  cout<<"rdstate after reading from cin : "
      << cin.rdstate() << endl;
  cout<<"good eof fail bad "
      << ios::goodbit << " "
      << ios::eofbit << " "
      << ios::failbit << " "
      << ios::badbit << endl;

}

Compiling tl

g++ -v -o tl tl.C -W -Wall -g
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads --enable-languages=c,c++,f77,objc
Thread model: posix
gcc version 3.1 20020128 (experimental)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -W -Wall -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ tl.C -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase tl.C -g -W -Wall -version -o /tmp/ccCTDZqZ.s
GNU CPP version 3.1 20020128 (experimental) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.1 20020128 (experimental) (i686-pc-linux-gnu)
	compiled by GNU C version 3.1 20020128 (experimental).
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++-v3
 /usr/local/include/g++-v3/i686-pc-linux-gnu
 /usr/local/include/g++-v3/backward
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../../i686-pc-linux-gnu/bin/as -V -Qy -o /tmp/ccJpELoI.o /tmp/ccCTDZqZ.s
GNU assembler version 2.11.92.0.12.3 (i686-pc-linux-gnu) using BFD version 2.11.92.0.12.3 20011121
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o tl /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtbegin.o -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1 -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../../i686-pc-linux-gnu/lib -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../.. /tmp/ccJpELoI.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtend.o /usr/lib/crtn.o

GNU gdb 20020118
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) set environment LANG=fr_FR
(gdb) r
Starting program: /home/peter/tl 
de_DE
cout locale: fr_FR
cin locale: de_DE
1,2

Program terminated with signal SIGKILL, Killed.
The program no longer exists.
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]