diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-03 23:45:56 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-03 23:45:56 +0000 |
commit | fe644b69d013e77c7fc2db2a9863969d4f564561 (patch) | |
tree | a2cb1398bd46b8decaea84f1b7de8c7cd35e6046 /gcc/fortran/resolve.c | |
parent | 90079d10dd355193fe289fa0bfcb0d7be880d45a (diff) | |
parent | 04e0495a6da35f3b0bcedbd75908cb6e9ba8ff8f (diff) |
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@206327 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index db2f5eb705af..0e80f491abc7 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1,5 +1,5 @@ /* Perform type resolution on the various structures. - Copyright (C) 2001-2013 Free Software Foundation, Inc. + Copyright (C) 2001-2014 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -6930,10 +6930,7 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code) gcc_assert (ts); - if (ts->type == BT_CLASS || ts->type == BT_DERIVED) - gfc_find_derived_vtab (ts->u.derived); - else - gfc_find_intrinsic_vtab (ts); + gfc_find_vtab (ts); if (dimension) e = gfc_expr_to_initialize (e); @@ -8054,7 +8051,7 @@ resolve_select_type (gfc_code *code, gfc_namespace *old_ns) gfc_symbol *ivtab; gfc_expr *e; - ivtab = gfc_find_intrinsic_vtab (&c->ts); + ivtab = gfc_find_vtab (&c->ts); gcc_assert (ivtab && CLASS_DATA (ivtab)->initializer); e = CLASS_DATA (ivtab)->initializer; c->low = c->high = gfc_copy_expr (e); @@ -11906,9 +11903,6 @@ resolve_typebound_procedures (gfc_symbol* derived) resolve_bindings_derived = derived; resolve_bindings_result = true; - /* Make sure the vtab has been generated. */ - gfc_find_derived_vtab (derived); - if (derived->f2k_derived->tb_sym_root) gfc_traverse_symtree (derived->f2k_derived->tb_sym_root, &resolve_typebound_procedure); @@ -12735,7 +12729,8 @@ resolve_symbol (gfc_symbol *sym) if (sym->attr.flavor == FL_UNKNOWN || (sym->attr.flavor == FL_PROCEDURE && !sym->attr.intrinsic && !sym->attr.generic && !sym->attr.external - && sym->attr.if_source == IFSRC_UNKNOWN)) + && sym->attr.if_source == IFSRC_UNKNOWN + && sym->ts.type == BT_UNKNOWN)) { /* If we find that a flavorless symbol is an interface in one of the |