summaryrefslogtreecommitdiff
path: root/gcc/fortran/module.c
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2016-06-26 01:03:19 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2016-06-26 01:03:19 +0000
commit0aa73965c1736eeb5a632a021959bab255d417b6 (patch)
treea921e77f6a2fbc4ce1d8c2d6e2a386a83538da4f /gcc/fortran/module.c
parent699bc87e1dd7df84e06637fff530b6b664bd1341 (diff)
2016-06-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/71649 * module.c (create_intrinsic_function): Check for NULL values and return after giving error. PR fortran/71649 * gfortran.dg/pr71649.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237789 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r--gcc/fortran/module.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 6d3860ef826e..4d664f079f5a 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -6159,9 +6159,11 @@ create_intrinsic_function (const char *name, int id,
tmp_symtree = gfc_find_symtree (gfc_current_ns->sym_root, name);
if (tmp_symtree)
{
- if (strcmp (modname, tmp_symtree->n.sym->module) == 0)
- return;
- gfc_error ("Symbol %qs already declared", name);
+ if (tmp_symtree->n.sym && tmp_symtree->n.sym->module
+ && strcmp (modname, tmp_symtree->n.sym->module) == 0)
+ return;
+ gfc_error ("Symbol %qs at %C already declared", name);
+ return;
}
gfc_get_sym_tree (name, gfc_current_ns, &tmp_symtree, false);