aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/module.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-08-23 14:13:34 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2011-08-23 14:13:34 +0200
commit0fcbc86b5586c3c3bc370d43b2dea98108fd9796 (patch)
tree116c2a6560f78acac051d2c08b8498111d4cd9b6 /gcc/fortran/module.c
parent336ecb6550395820cea7c0bbc13c0b7bb5045e91 (diff)
downloadgcc-0fcbc86b5586c3c3bc370d43b2dea98108fd9796.zip
gcc-0fcbc86b5586c3c3bc370d43b2dea98108fd9796.tar.gz
gcc-0fcbc86b5586c3c3bc370d43b2dea98108fd9796.tar.bz2
re PR fortran/31600 (Better error message for redeclation of USEd symbols)
2011-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/31600 * symbol.c (gfc_add_type): Better diagnostic if redefining use-associated symbol. * module.c (gfc_use_module): Use module name as locus. 2011-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/31600 * gfortran.dg/use_16.f90: New. From-SVN: r177985
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r--gcc/fortran/module.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index aef3404..4250a17 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -5727,6 +5727,9 @@ gfc_use_module (void)
int c, line, start;
gfc_symtree *mod_symtree;
gfc_use_list *use_stmt;
+ locus old_locus = gfc_current_locus;
+
+ gfc_current_locus = use_locus;
filename = (char *) alloca (strlen (module_name) + strlen (MODULE_EXTENSION)
+ 1);
@@ -5748,6 +5751,7 @@ gfc_use_module (void)
"intrinsic module at %C") != FAILURE)
{
use_iso_fortran_env_module ();
+ gfc_current_locus = old_locus;
return;
}
@@ -5756,6 +5760,7 @@ gfc_use_module (void)
"ISO_C_BINDING module at %C") != FAILURE)
{
import_iso_c_binding_module();
+ gfc_current_locus = old_locus;
return;
}
@@ -5845,6 +5850,8 @@ gfc_use_module (void)
gfc_rename_list = NULL;
use_stmt->next = gfc_current_ns->use_stmts;
gfc_current_ns->use_stmts = use_stmt;
+
+ gfc_current_locus = old_locus;
}