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]

More clues on memory bloat (>200Meg)


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
    %> 


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