diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-05-20 22:05:40 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-05-20 22:05:40 +0200 |
commit | f11de7c5f898a5a613f7ccb47f999312f505f125 (patch) | |
tree | 39687a43e4fe7d4930831b3a86e693cd333c6c40 /gcc/fortran/resolve.c | |
parent | 878cdb7b38f5487d0ab7933377174a552b5f7d80 (diff) | |
download | gcc-f11de7c5f898a5a613f7ccb47f999312f505f125.zip gcc-f11de7c5f898a5a613f7ccb47f999312f505f125.tar.gz gcc-f11de7c5f898a5a613f7ccb47f999312f505f125.tar.bz2 |
re PR fortran/48858 (Incorrect error for same binding label on two generic interface specifics)
2013-05-20 Tobias Burnus <burnus@net-b.de>
PR fortran/48858
* decl.c (add_global_entry): Use nonbinding name
only for F2003 or if no binding label exists.
(gfc_match_entry): Update calls.
* parse.c (gfc_global_used): Improve error message.
(add_global_procedure): Use nonbinding name
only for F2003 or if no binding label exists.
(gfc_parse_file): Update call.
* resolve.c (resolve_global_procedure): Use binding
name when available.
* trans-decl.c (gfc_get_extern_function_decl): Ditto.
2013-05-20 Tobias Burnus <burnus@net-b.de>
PR fortran/48858
* gfortran.dg/binding_label_tests_17.f90: New.
* gfortran.dg/binding_label_tests_18.f90: New.
* gfortran.dg/binding_label_tests_19.f90: New.
* gfortran.dg/binding_label_tests_20.f90: New.
* gfortran.dg/binding_label_tests_21.f90: New.
* gfortran.dg/binding_label_tests_22.f90: New.
* gfortran.dg/binding_label_tests_23.f90: New.
From-SVN: r199119
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 06fa301..f3607b4 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -2333,7 +2333,7 @@ resolve_global_procedure (gfc_symbol *sym, locus *where, type = sub ? GSYM_SUBROUTINE : GSYM_FUNCTION; - gsym = gfc_get_gsymbol (sym->name); + gsym = gfc_get_gsymbol (sym->binding_label ? sym->binding_label : sym->name); if ((gsym->type != GSYM_UNKNOWN && gsym->type != type)) gfc_global_used (gsym, where); |