summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-03 23:45:56 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-03 23:45:56 +0000
commitfe644b69d013e77c7fc2db2a9863969d4f564561 (patch)
treea2cb1398bd46b8decaea84f1b7de8c7cd35e6046 /gcc/fortran/resolve.c
parent90079d10dd355193fe289fa0bfcb0d7be880d45a (diff)
parent04e0495a6da35f3b0bcedbd75908cb6e9ba8ff8f (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.c15
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