This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: using C++ STL containers in GCC/gfortran source code
- From: Pedro Alves <palves at redhat dot com>
- To: Janus Weil <janus at gcc dot gnu dot org>
- Cc: "N.M. Maclaren" <nmm1 at cam dot ac dot uk>, gcc mailing list <gcc at gcc dot gnu dot org>, gfortran <fortran at gcc dot gnu dot org>, Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 16 Dec 2016 18:46:07 +0000
- Subject: Re: using C++ STL containers in GCC/gfortran source code
- Authentication-results: sourceware.org; auth=none
- References: <CAKwh3qgUN=mTFPg6Ew6Yk9RXgS3CttE7O3cGMQRcLKNqUOjBng@mail.gmail.com> <Prayer.1.3.5.1612161716380.29840@hermes-2.csi.cam.ac.uk> <CAKwh3qhj-y5U9RrJ+nP45fGjRL2JbEKGKcVw4nsXMp-=h8jq-Q@mail.gmail.com> <1b7f3420-0496-9211-3c74-42a7d4a52525@redhat.com> <CAKwh3qiAGVjGVg0FKakEFmdmdJjPw=KQ7j0jYbB0qp2SPN__Aw@mail.gmail.com>
On 12/16/2016 06:31 PM, Janus Weil wrote:
> 2016-12-16 18:53 GMT+01:00 Pedro Alves <palves@redhat.com>:
>> On 12/16/2016 05:33 PM, Janus Weil wrote:
>>> And in particular: How do the current uses of
>>> std::string in GCC deal with this problem? (Do they?)
>>
>> Doesn't look like they do.
>
> Huh, that's a problem then, isn't it?
Right. The easiest way to trigger it I think is if something
computes some size incorrectly, and calls for example string::reserve(-1)
or string::resize(-1) by mistake (likewise for std::vector, etc.).
malloc will fail, new will throw bad_alloc, and GCC will abort and
maybe generate a core dump, instead of gracefully printing
something like:
cc1: out of memory allocating NNNNNNNN bytes ...
and existing with error status.
Thanks,
Pedro Alves