aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/symbol.c
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2015-05-18 19:25:49 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2015-05-18 19:25:49 +0000
commitf7c1c1719230dc619e465a5a2e1d2553e98ff090 (patch)
treeadd9f82c7ef52b397eeafb6323cd7b609c561280 /gcc/fortran/symbol.c
parent87734648c9b07cb1c1c30b1d77a38d4482f61e37 (diff)
downloadgcc-f7c1c1719230dc619e465a5a2e1d2553e98ff090.zip
gcc-f7c1c1719230dc619e465a5a2e1d2553e98ff090.tar.gz
gcc-f7c1c1719230dc619e465a5a2e1d2553e98ff090.tar.bz2
re PR fortran/64925 (ICE with same names for dummy arg and internal procedure)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/64925 * symbol.c(check_conflict): Check for a conflict between a dummy argument and an internal procedure name. 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/64925 * gfortran.dg/pr64925.f90: New test. From-SVN: r223313
Diffstat (limited to 'gcc/fortran/symbol.c')
-rw-r--r--gcc/fortran/symbol.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index b18608b..e470cb9 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -458,6 +458,11 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where)
}
}
+ if (attr->dummy && ((attr->function || attr->subroutine) &&
+ gfc_current_state () == COMP_CONTAINS))
+ gfc_error_now ("internal procedure '%s' at %L conflicts with "
+ "DUMMY argument", name, where);
+
conf (dummy, entry);
conf (dummy, intrinsic);
conf (dummy, threadprivate);