https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69423

--- Comment #9 from vehre at gcc dot gnu.org ---
Created attachment 37579
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37579&action=edit
Clear explicit function result variables for deferred length char arrays

Well, using the explicit result declaration of comment #3 the code is far less
optimized. Furthermore are the .__result and __result parameters in the code of
comment #3 not cleared in tree-original.

When I add this clearing by modifying trans-decl.c (gfc_trans_deferred_vars (),
see attached patch1.txt), i.e.,

__.003t.original:
test (character(kind=1)[1:*.__result] * & __result, integer(kind=4) *
.__result, integer(kind=4) & restrict alen)
{
  integer(kind=4) i;

  *.__result = 0;
  *__result = 0B;
...

then I get the same result, like in the original program. The question is, does
this information help us in any way?

Reply via email to