This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: bug: libstdc++ container allocator discrepancy
On 15 Aug 2000 at 12:06 (-0700), Forest Wilkinson wrote:
| >Changed string_char_traits to char_traits, as ther was no occurrence
| >of the char sequence 'string_char_traits' defined in my version of
| >14882.
|
| Now I'm beginning to think that you're using a different library than the
| one that exhibits the problem I described. In the lib I was using,
| string_char_traits is the traits class used by the std::string. It's
| another example of the nonstandard stuff going on in that implementation.
| If you don't have it defined anywhere, perhaps you are using the v3
| library, while I am not?
that's what I'm thinking :) I agree that the libstdc++ prior to
-v3 have been very non-conforming.
| I originally found the problem behavior with gcc 2.95.2 from Linux
| Mandrake 7, and reproduced it with gcc 2.96 from the Red Hat 7 beta.
| Reported versions are 2.95.2 19991024 (release) and 2.96 20000724
| (experimental), respectively. I had been under the impression that gcc
| had incorporated the v3 library in April. But according to my tests,
| either I was mistaken, or the v3 library in 2.96/20000724 has the same
| broken string class that came before it.
I can't comment at all on which version of libstdc++ those distros are
using for their compiler... libstdc++-v3 is a configure time option
with the gcc in cvs, but not the default, so it is likely that the
compilers you are using still use the pre-v3 c++ library.
| How do I determine which version of the c++ library I'm using? I'd feel
| better about my bug report if I knew for sure which library it applies to.
(there is a better way :)
brent$ cpp -v -x c++ /dev/null /dev/null
Reading specs from /usr/local/opt/lib/gcc-lib/i686-pc-linux/2.96/specs
gcc version 2.96 20000805 (experimental)
/usr/local/opt/lib/gcc-lib/i686-pc-linux/2.96/cpp0 -lang-c++ -v -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ /dev/null -o /dev/null
GNU CPP version 2.96 20000805 (experimental) (cpplib)
(i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
* /usr/local/opt/include/g++-v3
/usr/local/include
/usr/local/opt/lib/gcc-lib/i686-pc-linux/2.96/include
/usr/local/opt/i686-pc-linux/include
/usr/include
End of search list.
notice the line with the '*'. that is the -v3 include dir. the
pre-v3 include dir is g++-3 (without the 'v').
hth.
brent
--
Damon Brent Verner o _ _ _
Cracker Jack? Surprise Certified _o /\_ _ \\o (_)\__/o (_)
brent@rcfile.org _< \_ _>(_) (_)/<_ \_| \ _|/' \/
brent@linux1.org (_)>(_) (_) (_) (_) (_)' _\o_