"basic_string" problem in libstdc++

Fred Richardson frichard@bbn.com
Thu Oct 9 10:46:00 GMT 1997


It looks like basic_string is broken:

    %> cat foo.cc
    // #define NO_STRING

    #include <stdlib.h>
    #include <std.h>


    #include <stdlib.h>
    #include <iostream.h>
    #include <fstream.h>
    #include <string>

    //==================================================================
    //  main()
    //
    //  Program's main routine.
    //==================================================================
    int     main(int argc, char *argv[])
    {
        for (int i = 0; i < argc; i++)
        {
    #ifndef NO_STRING
            string      astr;
            const char* str = argv[i];
    #else
            const char* str = argv[i];
    #endif
            cout << "ARG " << i << ": " << str << endl;
    #ifndef NO_STRING
            astr = str;
    #endif
        }
        return 0;
    }    

    %> g++ -v -o foo -Wall -g foo.cc
    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__EXCEPTIONS -g -Wall foo.cc /var/tmp/cca006Ms.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/cca006Ms.ii -quiet -dumpbase foo.cc -g -Wall -version -o /var/tmp/cca006Ms.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.12 971008 (gcc2-970802 experimental).
     /d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/bin/as -V -Qy -s -o /var/tmp/cca006Ms1.o /var/tmp/cca006Ms.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/cca006Ms1.o -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
    ARG 0: foo
    Segmentation fault
    %> g++ -DNO_STRING -v -o foo -Wall -g foo.cc
    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__EXCEPTIONS -g -Wall -DNO_STRING foo.cc /var/tmp/cca006Mz.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/cca006Mz.ii -quiet -dumpbase foo.cc -g -Wall -version -o /var/tmp/cca006Mz.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.12 971008 (gcc2-970802 experimental).
     /d4mutl/contrib/egcs/sparc-sun-solaris2.5.1/bin/as -V -Qy -s -o /var/tmp/cca006Mz1.o /var/tmp/cca006Mz.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/cca006Mz1.o -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
    ARG 0: foo
    %> 



More information about the Gcc-bugs mailing list