public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] Fortran: resolve.c - remove '*XCNEW' based nullifying
@ 2021-06-14 12:49 Tobias Burnus
  0 siblings, 0 replies; only message in thread
From: Tobias Burnus @ 2021-06-14 12:49 UTC (permalink / raw)
  To: gcc-patches, fortran

[-- Attachment #1: Type: text/plain, Size: 696 bytes --]

Found this odd code. It starts fine with:
   gfc_ref *ref = gfc_get_ref ();
this uses XCNEW to return nullified memory.

We then operate on
   ref->u.ar
where 'ar' is a struct which is in a 'u'nion which is in gfc_ref.

Hence, 'ref->u.ar' is not a pointer. Hence, the following is a
wasteful way to memset '\0' the struct – which is still '\0'
from the first XCNEW:
   ref->u.ar = *gfc_get_array_ref()

Note the '*' before the XCNEW calling macro gfc_get_array_ref!

Committed as obvious.

Tobias

-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf

[-- Attachment #2: committed.diff --]
[-- Type: text/x-patch, Size: 718 bytes --]

commit a893b26f7311fe65b604f12a8fa5d5d64f5454e2
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Mon Jun 14 14:36:20 2021 +0200

    Fortran: resolve.c - remove '*XCNEW' based nullifying
    
    gcc/fortran/ChangeLog:
    
            * resolve.c (resolve_variable): Remove *XCNEW used to
            nullify nullified memory.

diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index a37ad665645..45c3ad387ac 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -5709,7 +5709,6 @@ resolve_variable (gfc_expr *e)
 	     part_ref.  */
 	  gfc_ref *ref = gfc_get_ref ();
 	  ref->type = REF_ARRAY;
-	  ref->u.ar = *gfc_get_array_ref();
 	  ref->u.ar.type = AR_FULL;
 	  if (sym->as)
 	    {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-14 12:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-14 12:49 [committed] Fortran: resolve.c - remove '*XCNEW' based nullifying Tobias Burnus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).