This is the mail archive of the gcc-bugs@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]

egcs-2.90.23 980102 (egcs-1.0.1 release) fails to compile simple file


I installed egcs-2.90.23 980102 (egcs-1.0.1 release) on IBM AIX 4.1 a
few weeks ago.

However, an attempt to compile and run one of the early programs in
the new book

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}

@String{pub-AW:adr              = "Reading, MA, USA"}

@Book{Stroustrup:1997:CPL,
  author =       "Bjarne Stroustrup",
  title =        "The {C++} Programming Language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Third",
  pages =        "x + 910",
  year =         "1997",
  ISBN =         "0-201-88954-4",
  LCCN =         "QA76.73.C153 S77 1997",
  bibdate =      "Thu Aug 07 14:09:38 1997",
}

results in numerous error messages from the sort() call.  If that call
is commented out, the program compiles and runs correctly (though,
without sort(), the output is of course not properly sorted).

The same program also fails to compile with gcc 2.8.0 on every system
on which I've been able to build that release, though there, there are
errors issued also for both for_each() calls.

I am interested in finding out whether you folks can reproduce the
problem at your site.

Here is the code, followed by the error messages:

// Word frequency utility
// B. Stroustrup, The C++ Programming Language, 3rd edition, p. 62

#include <algo.h>
#include <iostream.h>
#include <iterator.h>
#include <map.h>
#include <pair.h>

#if defined(__sgi)
#include <mstring.h>
#else
#include <string>
#endif

map<string,int> histogram;

void record(string& s)
{
    histogram[s]++;	// record frequency of ``s''
}

void print(pair<string,int>& r)
{
  cout << r.first << ' ' << r.second << '\n';
}

int main()
{
  istream_iterator<string> ii(cin);
  istream_iterator<string> eos;

#if 1
  for_each(ii, eos, record);
#endif
#if 1
  sort(histogram.begin(), histogram.end());
#endif
#if 1
  for_each(histogram.begin(), histogram.end(), print);
#endif
  return (EXIT_SUCCESS);
}


/usr/local/include/g++/stl_algo.h: In function `void
sort<__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>>(struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>)':

/usr/local/include/g++/stl_algo.h:1050: no match for
`__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> & -
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> &'

/usr/local/include/g++/stl_algo.h: In function `void (*
for_each<istream_iterator<basic_string<char,string_char_traits<char>
>,int>, void (*)(basic_string<char,string_char_traits<char> >
&)>(class istream_iterator<basic_string<char,string_char_traits<char>
>,int>, class
istream_iterator<basic_string<char,string_char_traits<char> >,int>,
void (*)(class basic_string<char,string_char_traits<char> > &)))(class
basic_string<char,string_char_traits<char> > &)':

/usr/local/include/g++/stl_algo.h:79: warning: conversion from `const
basic_string<char,string_char_traits<char> >' to
`basic_string<char,string_char_traits<char> > &' discards const

/usr/local/include/g++/stl_algo.h: In function `void
__final_insertion_sort<__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>>(struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>)':

/usr/local/include/g++/stl_algo.h:985: no match for
`__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> & -
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> &'

/usr/local/include/g++/stl_algo.h:986: no match for
`__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> & + const int &'

/usr/local/include/g++/stl_algo.h:987: no match for
`__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> & + const int &'

/usr/local/include/g++/stl_algo.h: In function `void
__insertion_sort<__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>>(struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>)':

/usr/local/include/g++/stl_algo.h:942: no match for
`__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *> & + int'

/usr/local/include/g++/stl_algo.h: In function `void
__linear_insert<__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, pair<const
basic_string<char,string_char_traits<char> >,int>>(struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
pair<const basic_string<char,string_char_traits<char> >,int> *)':

/usr/local/include/g++/stl_algo.h:920: no match for `__rb_tree_iterator<pair<const basic_string<char,string_char_traits<char> >,int>,pair<const basic_string<char,string_char_traits<char> >,int> &,pair<const basic_string<char,string_char_traits<char> >,int> *> & + int'

/usr/local/include/g++/stl_algo.h: In method `struct pair<const
basic_string<char,string_char_traits<char> >,int> & pair<const
basic_string<char,string_char_traits<char> >,int>::operator =(const
struct pair<const basic_string<char,string_char_traits<char> >,int>
&)':

/usr/local/include/g++/stl_algo.h:921: warning: passing `const
basic_string<char,string_char_traits<char> >' as `this' argument of
`class basic_string<char,string_char_traits<char> > &
basic_string<char,string_char_traits<char> >::operator =(const class
basic_string<char,string_char_traits<char> > &)' discards const

/usr/local/include/g++/stl_algo.h: In function `void (*
for_each<__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, void
(*)(pair<basic_string<char,string_char_traits<char> >,int> &)>(struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, struct
__rb_tree_iterator<pair<const
basic_string<char,string_char_traits<char> >,int>,pair<const
basic_string<char,string_char_traits<char> >,int> &,pair<const
basic_string<char,string_char_traits<char> >,int> *>, void (*)(struct
pair<basic_string<char,string_char_traits<char> >,int> &)))(struct
pair<basic_string<char,string_char_traits<char> >,int> &)':

/usr/local/include/g++/stl_algo.h:79: warning: initializing non-const
`pair<basic_string<char,string_char_traits<char> >,int> &' with
`pair<const basic_string<char,string_char_traits<char> >,int>' will
use a temporary

----------------------------------------------------------------------------
- Nelson H. F. Beebe                  Tel: +1 801 581 5254                 -
- Center for Scientific Computing     FAX: +1 801 581 4148                 -
- University of Utah                  Internet e-mail: beebe@math.utah.edu -
- Department of Mathematics, 105 JWB                   beebe@acm.org       -
- 155 S 1400 E RM 233                                  beebe@ieee.org      -
- Salt Lake City, UT 84112-0090, USA  URL: http://www.math.utah.edu/~beebe - 
----------------------------------------------------------------------------


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