From 0f7cec0982a2866f36d17e2ac1c1b05d69e6154d Mon Sep 17 00:00:00 2001 From: Harald Anlauf Date: Sun, 17 Feb 2019 21:19:20 +0000 Subject: re PR fortran/88299 ([F18] COMMON in a legacy module produces bogus warnings in dependent code) 2019-02-17 Harald Anlauf PR fortran/88299 * resolve.c (resolve_common_blocks,resolve_common_vars): Move check for obsolent COMMON feature in F2018 to better place. PR fortran/88299 * gfortran.dg/pr88299.f90: New test. From-SVN: r268974 --- gcc/fortran/resolve.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gcc/fortran/resolve.c') diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index e215fef..e581a60 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -940,7 +940,11 @@ resolve_common_vars (gfc_common_head *common_block, bool named_common) have been ignored to continue parsing. We do the checks again here. */ if (!csym->attr.use_assoc) - gfc_add_in_common (&csym->attr, csym->name, &common_block->where); + { + gfc_add_in_common (&csym->attr, csym->name, &common_block->where); + gfc_notify_std (GFC_STD_F2018_OBS, "COMMON block at %L", + &common_block->where); + } if (csym->value || csym->attr.data) { @@ -998,10 +1002,6 @@ resolve_common_blocks (gfc_symtree *common_root) resolve_common_vars (common_root->n.common, true); - if (!gfc_notify_std (GFC_STD_F2018_OBS, "COMMON block at %L", - &common_root->n.common->where)) - return; - /* The common name is a global name - in Fortran 2003 also if it has a C binding name, since Fortran 2008 only the C binding name is a global identifier. */ -- cgit v1.1