This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran] PR 41714: [OOP] ALLOCATE SOURCE= does not properly copy the value from SOURCE
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- Cc: Janus Weil <janus at gcc dot gnu dot org>, gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>, salvatore dot filippone at uniroma2 dot it
- Date: Sun, 25 Oct 2009 16:10:55 +0100
- Subject: Re: [Patch, Fortran] PR 41714: [OOP] ALLOCATE SOURCE= does not properly copy the value from SOURCE
- References: <854832d40910250420i45c7bfddga4130fc1f1bfccd0@mail.gmail.com> <339c37f20910250752w51dd08d5tea70ac6e925f78f3@mail.gmail.com>
On Sun, Oct 25, 2009 at 3:52 PM, Paul Richard Thomas
<paul.richard.thomas@gmail.com> wrote:
> Janus,
>
> It looks OK to me except:
>
>> ? ? ? ?PR fortran/41714
>> ? ? ? ?* trans-expr.c (gfc_build_memcpy_call): Take care of the case that the
>> ? ? ? ?call to '__builtin_memcpy' is optimized away (replaced by a direct
>> ? ? ? ?assignment).
>
> How the heck does that work? ?It comes out as a NOP_EXPR and yet it's
> really an assignment..... Is that documented somewhere?
That patch looks indeed dubious. It tests for an implementation detail
(the memcpy folder returns (void *) ({ *dst = *src; dst; })). You should
be able to unconditionally fold-convert to void_type_node as in the
original code. Instead tree_annotate_all_with_location should be fixed.
Richard.