Bug in g++ version 2.95.2

Maurizio Loreti loreti@pd.infn.it
Mon Jun 12 01:56:00 GMT 2000


Hello -
I have a simple C++ program (included below) that complies and links
correctly with "g++ -o foo foo.cxx"; adding a -ansi to the command line
(i.e. using "g++ -ansi -o foo foo.cxx") causes an error (i.e. g++ cannot
find lrand48):

MLO@mlinux 86 $ g++ -ansi -o foo foo.cxx                   
/usr/soft/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/stl_algo.h: In function `int __random_number<int>(int)':
/usr/soft/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/stl_algo.h:852:   instantiated from `random_shuffle<int *>(int *, int *)'
foo.cxx:17:   instantiated from here
/usr/soft/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/stl_algo.h:841: `lrand48' undeclared (first use this function)
/usr/soft/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/stl_algo.h:841: (Each undeclared identifier is reported only once
/usr/soft/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/stl_algo.h:841: for each function it appears in.)

g++ version: 2.95.2
machine and OS: i686-pc-linux-gnu, linux kernel 2.2.12-20 (RedHat 6.1)
gcc/g++ configured with: ./configure i686-pc-linux-gnu --prefix=/usr/soft

File that compiles/links correctly without -ansi, and that does not with
-ansi:

#include <iostream>
#include <vector>
#include <algorithm>

class conta {
    int n;
  public:
    conta(const int first=0) throw() : n(first) {};
    int operator() () throw() { return n++; };
};

int main() {
  const int nCarte = 40;
  std::vector<int> mazzo(nCarte);

  std::generate_n(mazzo.begin(), nCarte, conta(1));
  std::random_shuffle(mazzo.begin(), mazzo.end());
  std::copy(mazzo.begin(), mazzo.end(),
            std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;
}

-- 
Maurizio Loreti                         http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            loreti@pd.infn.it



More information about the Gcc-bugs mailing list