diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2015-04-10 11:29:53 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2015-04-10 11:29:53 +0000 |
commit | 44c57c2f9049c9fa53817b71110cf0cee00675b6 (patch) | |
tree | b5b49b95711b85f24d871a5d6f80a3a141d8a305 /gcc/fortran/decl.c | |
parent | c3d71b62c66f81b95213b88897cdd75f840e2fae (diff) | |
download | gcc-44c57c2f9049c9fa53817b71110cf0cee00675b6.zip gcc-44c57c2f9049c9fa53817b71110cf0cee00675b6.tar.gz gcc-44c57c2f9049c9fa53817b71110cf0cee00675b6.tar.bz2 |
re PR fortran/56674 (ICE in check_sym_interfaces)
PR fortran/56674
PR fortran/58813
PR fortran/59016
PR fortran/59024
fortran/
* symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
former to the latter and make it non-static. Update callers.
* gfortran.h (gfc_save_symbol_data): New prototype.
* decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
before modifying symbols 'sym' and 'dt_sym'.
testsuite/
* gfortran.dg/used_types_27.f90: New.
From-SVN: r221972
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r-- | gcc/fortran/decl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 40d851c..037a8cc 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -2876,6 +2876,7 @@ gfc_match_decl_type_spec (gfc_typespec *ts, int implicit_flag) return MATCH_ERROR; } + gfc_save_symbol_data (sym); gfc_set_sym_referenced (sym); if (!sym->attr.generic && !gfc_add_generic (&sym->attr, sym->name, NULL)) @@ -2900,6 +2901,8 @@ gfc_match_decl_type_spec (gfc_typespec *ts, int implicit_flag) sym->generic = intr; sym->attr.if_source = IFSRC_DECL; } + else + gfc_save_symbol_data (dt_sym); gfc_set_sym_referenced (dt_sym); |