[patch, fortran] Asynchronous I/O, take 3

Janne Blomqvist blomqvist.janne@gmail.com
Mon Sep 3 09:07:00 GMT 2018


On Mon, Sep 3, 2018 at 1:39 AM Bernhard Reutner-Fischer <
rep.dot.nop@gmail.com> wrote:

> On Sun, 15 Jul 2018 at 13:20, Thomas Koenig <tkoenig@netcologne.de> wrote:
>
> +  au = (async_unit *) xmalloc (sizeof (async_unit));
>
> I'd XCNEW (async_unit) and omit all those NULL and 0 stores.
> You should use the scalar allocators provided in include/libiberty.h
> throughout, so s/xmalloc/XNEW/ and s/free/XDELETE/ and so on.
>

libgfortran uses it's own allocator wrappers in
libgfortran/runtime/memory.c.

Perhaps there is a case for switching to use these macros instead (why???),
but if so, IMHO that should be done as a separate patch, also fixing all
the other uses of the allocator wrappers.


> +/* Enqueue a transfer statement.  */
> +
> +void
> +enqueue_transfer (async_unit *au, transfer_args *arg, enum aio_do type)
> +{
> +  transfer_queue *tq = calloc (sizeof (transfer_queue), 1);
> +  tq->arg = *arg;
>
> boom on OOM. XCNEW (transfer_queue), please.
>

xcalloc, rather.


-- 
Janne Blomqvist



More information about the Gcc-patches mailing list