Bug 8846 - [3.2 regression] ICE: locales and no match for operator<</operator+
Summary: [3.2 regression] ICE: locales and no match for operator<</operator+
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 3.2.1
: P3 normal
Target Milestone: ---
Assignee: Gabriel Dos Reis
URL:
Keywords: ice-on-invalid-code
Depends on:
Blocks:
 
Reported: 2002-12-06 08:46 UTC by benoit.sibaud
Modified: 2003-07-25 17:33 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
toto.C.ii.bz2 (68.56 KB, application/octet-stream)
2003-05-21 15:16 UTC, benoit.sibaud
Details

Note You need to log in before you can comment on or make changes to this bug.
Description benoit.sibaud 2002-12-06 08:46:02 UTC
8<----------------------------
using namespace std;

#include <iostream>
#include <string>

int main() {
  string foo = "";
  cout << foo + 0.0 << endl;
}
8<----------------------------

with fr_FR@euro locale, no match for operator<< and ICE ("erreur interne de compilateur: erreur pour rapporter une routine ré-entée", French version for "Internal compiler error: Error reporting routines re-entered.")
with C locale, no match for `std::string& + double' operator

$ diff toto.fr_FR\@euro.ii toto.C.ii 
2,3c2,3
< # 1 "<interne>"
< # 1 "<ligne de commande>"
---
> # 1 "<built-in>"
> # 1 "<command line>"

Release:
3.2.1

Environment:
i686-pc-linux-gnu
Debian GNU/Linux Sarge
configure --enable-threads=posix --enable-long-long --enable-namespaces --enable-multilib --with-as=binutils-2.13.1 --with-ld=binutils-2.13.1
--enable-nls --with-included-gettext

How-To-Repeat:
$ LC_ALL=C g++ -c toto.cpp
=> 1 error
$ LC_ALL=fr_FR@euro g++ -c toto.cpp
=> 1 error and ICE
Comment 1 Wolfgang Bangerth 2002-12-06 08:56:36 UTC
Responsible-Changed-From-To: unassigned->gdr
Responsible-Changed-Why: He fixed something similar recently
Comment 2 Wolfgang Bangerth 2002-12-06 08:56:36 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed. With 3.2.2CVS of yesterday (12/5/02), I get
    
    tmp/g> LC_ALL=fr_FR@euro /home/bangerth/bin/gcc-3.2.2-pre/bin/c++ -c x.cc
    x.cc: Dans function « int main() »:
    x.cc:8: no match pour l'opérateur «
    erreur interne de compilateur: erreur pour rapporter une routine ré-entée
    SVP soumettre un rapport complet d'anomalies,
    avec le source pré-traité si cela est approprié.
    Consulter <URL:http://www.gnu.org/software/gcc/bugs.html> pour les instructions.
    
    (and yes, even I can see that this is horrible "franglais").
    
    With 3.3 and 2.95 I get an error, but no ICE.
    
    Gaby, did your patch make it to the branch?
    
    Regards
      Wolfgang
Comment 3 Joe Buck 2003-04-25 21:05:02 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed for 3.3.