aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2019-02-17 21:19:20 +0000
committerHarald Anlauf <anlauf@gcc.gnu.org>2019-02-17 21:19:20 +0000
commit0f7cec0982a2866f36d17e2ac1c1b05d69e6154d (patch)
tree9d0429003ce847666f183a45e6f00854304c1587 /gcc/fortran/resolve.c
parente6ca33ba57dd55357cf2fd97c81fd12daca465a3 (diff)
downloadgcc-0f7cec0982a2866f36d17e2ac1c1b05d69e6154d.zip
gcc-0f7cec0982a2866f36d17e2ac1c1b05d69e6154d.tar.gz
gcc-0f7cec0982a2866f36d17e2ac1c1b05d69e6154d.tar.bz2
re PR fortran/88299 ([F18] COMMON in a legacy module produces bogus warnings in dependent code)
2019-02-17 Harald Anlauf <anlauf@gmx.de> 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
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c10
1 files changed, 5 insertions, 5 deletions
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. */