More clues on memory bloat (>200Meg)
Fred Richardson
frichard@bbn.com
Wed Oct 8 22:30:00 GMT 1997
Hi-
I've got a pretty good example here. I've found that -Wall and -O2
together can cause real problems:
%> limit datasize 200000
%> cat foo.cc
#include <stdlib.h>
#include <iostream.h>
#include <algorithm>
#include <vector.h>
int main()
{
vector<int> int_vec(size_t(5), int(1));
vector<vector<int> > int_vec_vec(size_t(7), int_vec);
vector<vector<vector<int> > > int_vec_vec_vec(size_t(9), int_vec_vec);
cout << int_vec_vec_vec[3][3][3] << endl;
cout << "wow" << endl;
}
%> g++ -v -O2 -fno-exceptions -o foo foo.cc -lstdc++
Reading specs from /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/specs
gcc version egcs-2.90.12 971008 (gcc2-970802 experimental)
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -D__OPTIMIZE__ foo.cc /var/tmp/cca0064R.ii
GNU CPP version egcs-2.90.12 971008 (gcc2-970802 experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/d4mutl/contrib/egcs/include/g++
/usr/local/include
/d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/include
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/include
/usr/include
End of search list.
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/cc1plus /var/tmp/cca0064R.ii -quiet -dumpbase foo.cc -O2 -version -fno-exceptions -o /var/tmp/cca0064R.s
GNU C++ version egcs-2.90.12 971008 (gcc2-970802 experimental) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.11 970929 (gcc2-970802 experimental).
/d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/bin/as -V -Qy -s -o /var/tmp/cca0064R1.o /var/tmp/cca0064R.s
GNU assembler version 2.8 (sparc-sun-solaris2.5.1), using BFD version 2.8
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o foo /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/crt1.o /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/crti.o /usr/ccs/lib/values-Xa.o /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/crtbegin.o -L/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12 -L/d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/d4mutl/contrib/egcs/lib /var/tmp/cca0064R1.o -lstdc++ -lstdc++ -lm -lgcc -lc -lgcc /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/crtend.o /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/crtn.o
GNU ld version 2.8 (with BFD 2.8)
Supported emulations:
elf32_sparc
%> foo
1
wow
%> g++ -Wall -v -O2 -fno-exceptions -o foo foo.cc -lstdc++
Reading specs from /d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/specs
gcc version egcs-2.90.12 971008 (gcc2-970802 experimental)
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -D__OPTIMIZE__ -Wall foo.cc /var/tmp/cca0065G.ii
GNU CPP version egcs-2.90.12 971008 (gcc2-970802 experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/d4mutl/contrib/egcs/include/g++
/usr/local/include
/d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/include
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/include
/usr/include
End of search list.
/d4mutl/contrib/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.12/cc1plus /var/tmp/cca0065G.ii -quiet -dumpbase foo.cc -O2 -Wall -version -fno-exceptions -o /var/tmp/cca0065G.s
GNU C++ version egcs-2.90.12 971008 (gcc2-970802 experimental) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.11 970929 (gcc2-970802 experimental).
foo.cc: In function `int main()':
foo.cc:14: virtual memory exhausted
%>
More information about the Gcc-bugs
mailing list