diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2016-06-26 01:03:19 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2016-06-26 01:03:19 +0000 |
commit | 46db0fd456f0ecca6411c7b4de2a00c54d141fa0 (patch) | |
tree | a921e77f6a2fbc4ce1d8c2d6e2a386a83538da4f /gcc/fortran/module.c | |
parent | 9bbbddab3cc8154c8babadf123e6f903e9316118 (diff) | |
download | gcc-46db0fd456f0ecca6411c7b4de2a00c54d141fa0.zip gcc-46db0fd456f0ecca6411c7b4de2a00c54d141fa0.tar.gz gcc-46db0fd456f0ecca6411c7b4de2a00c54d141fa0.tar.bz2 |
re PR fortran/71649 (Internal compiler error)
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.
From-SVN: r237789
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 6d3860e..4d664f0 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); |