SAITO@sdr.slb.com ("Naoki Saito Ext. 5471", GEO-002) (05/23/89)
Hi! I recently installed g++-1.34.2 and libg++-1.34.0 on our
Sun3 OS 4.0.1 machine. The following program could be compiled but
when executed, it produced the out of memory error. It looks like
there's a bug in new or delete function.
This program is a kind of stupid but easy to explain the problem.
=========================================================================
#include <stream.h>
#include <math.h>
#include <ACG.h>
#include <Uniform.h>
#include "floatAVec.h"
main()
{
floatAVec array(100);
floatAVec window(100);
floatAVec res;
ACG gen;
Uniform r(0.0,1.0,&gen);
for (int i = 0; i < 100; i++)
{
array[i] = r();
window[i] = cos(PI*(i-50)/100);
}
for (i = 0; i < 1000000; i++)
res = product(array, window);
exit(0);
}
=============================================================================
$ g++ -g -v -o newtest newtest.cc floatVec.cc floatAVec.cc -lg++ -lm
g++ version 1.34.2
/usr/local/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 newtest.cc /tmp/cca16795.cpp
GNU CPP version 1.34
/usr/local/lib/gcc-c++ /tmp/cca16795.cpp -quiet -dumpbase newtest.cc -noreg -version -G -o /tmp/cca16795.s
GNU C++ version 1.34.2 (68k, MIT syntax) compiled by GNU C version 1.34.
as -mc68020 /tmp/cca16795.s -o newtest.o
/usr/local/lib/gcc-cundf -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 floatVec.cc /tmp/cca16795.cpp
GNU CPP version 1.34
/usr/local/lib/gcc-c++ /tmp/cca16795.cpp -quiet -dumpbase floatVec.cc -noreg -version -G -o /tmp/cca16795.s
GNU C++ version 1.34.2 (68k, MIT syntax) compiled by GNU C version 1.34.
as -mc68020 /tmp/cca16795.s -o floatVec.o
/usr/local/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 floatAVec.cc /tmp/cca16795.cpp
GNU CPP version 1.34
/usr/local/lib/gcc-c++ /tmp/cca16795.cpp -quiet -dumpbase floatAVec.cc -noreg -version -G -o /tmp/cca16795.s
GNU C++ version 1.34.2 (68k, MIT syntax) compiled by GNU C version 1.34.
as -mc68020 /tmp/cca16795.s -o floatAVec.o
/usr/local/lib/gcc-ld++ -o newtest -C -e __start -dc -dp -Bstatic /usr/local/lib/crt0+.o /usr/lib/Mcrt1.o newtest.o floatVec.o floatAVec.o -lg++ -lm -lg++ /usr/local/lib/gcc-gnulib -lg -lc
$ newtest
default_new_handler: out of memory... aaaiiiiiieeeeeeeeeeeeee!
This kind of memory allocation problem is critical for the people who are
doing numerical computation!
Thanks in your attention,
Naoki Saito (saito@sdr.slb.com)
Schlumberger-Doll Research