aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJanus Weil <jaydub66@gmail.com>2008-05-01 19:38:04 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2008-05-01 19:38:04 +0000
commit32d99e6869ec4eb0d8f801893d2ea499f9951f71 (patch)
treea7631c471f34f1baa0a920e1db3183a3507dc58d /gcc/fortran/resolve.c
parentca873b0e5aafd6c0fce9e00719671c6aa25c708b (diff)
downloadgcc-32d99e6869ec4eb0d8f801893d2ea499f9951f71.zip
gcc-32d99e6869ec4eb0d8f801893d2ea499f9951f71.tar.gz
gcc-32d99e6869ec4eb0d8f801893d2ea499f9951f71.tar.bz2
gfortran.h (struct gfc_symbol): Moving "interface" member to gfc_typespec (plus fixing a small docu error).
* gfortran.h (struct gfc_symbol): Moving "interface" member to gfc_typespec (plus fixing a small docu error). * interface.c (gfc_procedure_use): Ditto. * decl.c (match_procedure_decl): Ditto. * resolve.c (resolve_specific_f0, resolve_specific_f0, resolve_symbol): Ditto. From-SVN: r134867
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 65d1a16..4244205 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1563,10 +1563,10 @@ resolve_specific_f0 (gfc_symbol *sym, gfc_expr *expr)
/* See if we have an intrinsic interface. */
- if (sym->interface != NULL && sym->interface->attr.intrinsic)
+ if (sym->ts.interface != NULL && sym->ts.interface->attr.intrinsic)
{
gfc_intrinsic_sym *isym;
- isym = gfc_find_function (sym->interface->name);
+ isym = gfc_find_function (sym->ts.interface->name);
/* Existance of isym should be checked already. */
gcc_assert (isym);
@@ -2636,12 +2636,12 @@ resolve_specific_s0 (gfc_code *c, gfc_symbol *sym)
match m;
/* See if we have an intrinsic interface. */
- if (sym->interface != NULL && !sym->interface->attr.abstract
- && !sym->interface->attr.subroutine)
+ if (sym->ts.interface != NULL && !sym->ts.interface->attr.abstract
+ && !sym->ts.interface->attr.subroutine)
{
gfc_intrinsic_sym *isym;
- isym = gfc_find_function (sym->interface->name);
+ isym = gfc_find_function (sym->ts.interface->name);
/* Existance of isym should be checked already. */
gcc_assert (isym);
@@ -7735,26 +7735,27 @@ resolve_symbol (gfc_symbol *sym)
}
}
- if (sym->attr.procedure && sym->interface
+ if (sym->attr.procedure && sym->ts.interface
&& sym->attr.if_source != IFSRC_DECL)
{
- if (sym->interface->attr.procedure)
+ if (sym->ts.interface->attr.procedure)
gfc_error ("Interface '%s', used by procedure '%s' at %L, is declared "
- "in a later PROCEDURE statement", sym->interface->name,
+ "in a later PROCEDURE statement", sym->ts.interface->name,
sym->name,&sym->declared_at);
/* Get the attributes from the interface (now resolved). */
- if (sym->interface->attr.if_source || sym->interface->attr.intrinsic)
+ if (sym->ts.interface->attr.if_source || sym->ts.interface->attr.intrinsic)
{
- sym->ts = sym->interface->ts;
- sym->attr.function = sym->interface->attr.function;
- sym->attr.subroutine = sym->interface->attr.subroutine;
- copy_formal_args (sym, sym->interface);
+ sym->ts.type = sym->ts.interface->ts.type;
+ sym->ts.kind = sym->ts.interface->ts.kind;
+ sym->attr.function = sym->ts.interface->attr.function;
+ sym->attr.subroutine = sym->ts.interface->attr.subroutine;
+ copy_formal_args (sym, sym->ts.interface);
}
- else if (sym->interface->name[0] != '\0')
+ else if (sym->ts.interface->name[0] != '\0')
{
gfc_error ("Interface '%s' of procedure '%s' at %L must be explicit",
- sym->interface->name, sym->name, &sym->declared_at);
+ sym->ts.interface->name, sym->name, &sym->declared_at);
return;
}
}