This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


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

Re: string find


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

From: Benjamin Kosnik <bkoz@redhat.com>
Sent: 23 June 2000 17:21
> > Sorry, 21_strings ctor_copy_dtor still fails on sparc-solaris-2.7 with
CVS
> > gcc,
> > CVS libstdc++ and binutils 2.9.1
>
> Hmm. Anyway you can try to track this down? this has been plaguing the
> solaris builds for a long time.
>

The core dump is due to a seg fault when trying to copy a string of
max_size()-1 from a string literal that isn't that long. The comment says
"This
shouldn't crash, but the results are undefined" or something, which I
disagree
with. If you read 1Gb past the end of a string literal, most likely you are
in
unallocated memory, thus causing a seg fault. I think, therefore, that it is
a
test suite problem. (Phew!) Here is a patch.

Index: testsuite/21_strings/ctor_copy_dtor.cc
===================================================================
RCS file:
/cvs/gcc/egcs/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc,v
retrieving revision 1.1
diff -c -p -r1.1 ctor_copy_dtor.cc
*** ctor_copy_dtor.cc   2000/04/21 20:33:33     1.1
- --- ctor_copy_dtor.cc   2000/06/26 08:35:09
*************** int test01(void)
*** 90,98 ****
      test &= false;
    }

    try {
!     std::string str03(str_lit01, csz01 - 1);
!     test &= str03.size() != 0;
      test &= str03.size() <= str03.capacity();
    }
    // NB: bad_alloc is regrettable but entirely kosher for
- --- 90,99 ----
      test &= false;
    }

+   // build a maxsize-1 lengthed string consisting of all A's
    try {
!     std::string str03( csz01 - 1,'A');
!     test &= str03.size() == csz01 -1;
      test &= str03.size() <= str03.capacity();
    }
    // NB: bad_alloc is regrettable but entirely kosher for


Anthony

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.1 for non-commercial use <http://www.pgp.com>
Comment: PGP Key at: http://i3.yimg.com/3/c7e5ee24/g/68fc2307.asc

iQA/AwUBOVcVypvw+P4cG5rVEQIWMgCgtbqcn7R22uHsHsXhItZVn7qkW5wAoK3G
+Bx1NELqX+nvinSq5WfoyVcA
=5Ebw
-----END PGP SIGNATURE-----



__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com

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