[PATCH,FORTRAN 06/29] Use stringpool for association_list
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Wed Sep 5 14:57:00 GMT 2018
From: Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2017-10-26 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* gfortran.h (struct gfc_association_list): Change name to
pointer.
* match.c (gfc_match_associate): Adjust.
---
gcc/fortran/gfortran.h | 2 +-
gcc/fortran/match.c | 6 ++----
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 774a6de6168..ff42b39b453 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -2482,7 +2482,7 @@ typedef struct gfc_association_list
/* True when the rank of the target expression is guessed during parsing. */
unsigned rankguessed:1;
- char name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name;
gfc_symtree *st; /* Symtree corresponding to name. */
locus where;
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 1b03e7251a5..38827ed4637 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -1891,8 +1891,7 @@ gfc_match_associate (void)
gfc_association_list* a;
/* Match the next association. */
- const char *name_hack = NULL;
- if (gfc_match (" %n =>", &name_hack) != MATCH_YES)
+ if (gfc_match (" %n =>", &newAssoc->name) != MATCH_YES)
{
gfc_error ("Expected association at %C");
goto assocListError;
@@ -1909,12 +1908,11 @@ gfc_match_associate (void)
}
gfc_matching_procptr_assignment = 0;
}
- strcpy (newAssoc->name, name_hack);
newAssoc->where = gfc_current_locus;
/* Check that the current name is not yet in the list. */
for (a = new_st.ext.block.assoc; a; a = a->next)
- if (!strcmp (a->name, newAssoc->name))
+ if (a->name == newAssoc->name)
{
gfc_error ("Duplicate name %qs in association at %C",
newAssoc->name);
--
2.19.0.rc1
More information about the Fortran
mailing list