aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/match.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-05-20 22:03:48 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-05-20 22:03:48 +0200
commit878cdb7b38f5487d0ab7933377174a552b5f7d80 (patch)
tree73668c05f30962cb8036747eb6744fb502ce15b9 /gcc/fortran/match.c
parent9bbc95654de572e68a6afe4dd892721d34304ed6 (diff)
downloadgcc-878cdb7b38f5487d0ab7933377174a552b5f7d80.zip
gcc-878cdb7b38f5487d0ab7933377174a552b5f7d80.tar.gz
gcc-878cdb7b38f5487d0ab7933377174a552b5f7d80.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 (gfc_match_bind_c_stmt): Add gfc_notify_std. * match.c (gfc_match_common): Don't add commons to gsym. * resolve.c (resolve_common_blocks): Add to gsym and add checks. (resolve_bind_c_comms): Remove. (resolve_types): Remove call to the latter. * trans-common.c (gfc_common_ns): Remove static var. (gfc_map_of_all_commons): Add static var. (build_common_decl): Correctly handle binding label. 2013-05-20 Tobias Burnus <burnus@net-b.de> PR fortran/48858 * gfortran.dg/test_common_binding_labels.f03: Update dg-error. * gfortran.dg/test_common_binding_labels_2_main.f03: Ditto. * gfortran.dg/test_common_binding_labels_3_main.f03: Ditto. * gfortran.dg/common_18.f90: New. * gfortran.dg/common_19.f90: New. * gfortran.dg/common_20.f90: New. * gfortran.dg/common_21.f90: New. From-SVN: r199118
Diffstat (limited to 'gcc/fortran/match.c')
-rw-r--r--gcc/fortran/match.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 07f8f63..b44d815 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -4332,7 +4332,6 @@ gfc_match_common (void)
gfc_array_spec *as;
gfc_equiv *e1, *e2;
match m;
- gfc_gsymbol *gsym;
old_blank_common = gfc_current_ns->blank_common.head;
if (old_blank_common)
@@ -4349,23 +4348,6 @@ gfc_match_common (void)
if (m == MATCH_ERROR)
goto cleanup;
- gsym = gfc_get_gsymbol (name);
- if (gsym->type != GSYM_UNKNOWN && gsym->type != GSYM_COMMON)
- {
- gfc_error ("Symbol '%s' at %C is already an external symbol that "
- "is not COMMON", name);
- goto cleanup;
- }
-
- if (gsym->type == GSYM_UNKNOWN)
- {
- gsym->type = GSYM_COMMON;
- gsym->where = gfc_current_locus;
- gsym->defined = 1;
- }
-
- gsym->used = 1;
-
if (name[0] == '\0')
{
t = &gfc_current_ns->blank_common;