summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/parse.c
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-11 23:00:08 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-11 23:00:08 +0000
commit429352d765550142dc601ff91185dd5c7fcc0fe4 (patch)
treef82026b8934f8c5eee67469dbea505c8961f5d15 /gcc/fortran/parse.c
parent947218781c20655ac430621d303e03e54e2ddae7 (diff)
downloadppe42-gcc-429352d765550142dc601ff91185dd5c7fcc0fe4.tar.gz
ppe42-gcc-429352d765550142dc601ff91185dd5c7fcc0fe4.zip
PR fortran/15986
* parse.c (gfc_fixup_sibling_symbols): Also look for untyped variables. (parse_contained): Mark contained symbols as referenced. testsuite/ * gfortran.dg/contained_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84536 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r--gcc/fortran/parse.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 1295fb0e5f9..32f5185b2d6 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -2116,7 +2116,9 @@ gfc_fixup_sibling_symbols (gfc_symbol * sym, gfc_namespace * siblings)
continue;
old_sym = st->n.sym;
- if (old_sym->attr.flavor == FL_PROCEDURE && old_sym->ns == ns
+ if ((old_sym->attr.flavor == FL_PROCEDURE
+ || old_sym->ts.type == BT_UNKNOWN)
+ && old_sym->ns == ns
&& ! old_sym->attr.contained)
{
/* Replace it with the symbol from the parent namespace. */
@@ -2199,6 +2201,7 @@ parse_contained (int module)
/* Mark this as a contained function, so it isn't replaced
by other module functions. */
sym->attr.contained = 1;
+ sym->attr.referenced = 1;
/* Fix up any sibling functions that refer to this one. */
gfc_fixup_sibling_symbols (sym, gfc_current_ns);
OpenPOWER on IntegriCloud