diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-10-18 17:27:06 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-10-18 17:27:06 +0000 |
commit | b941459c5f0931937fe18cb25bdd608a3933ec20 (patch) | |
tree | b4453e7f56b6f0a2c4e0f7e76f6ee722c3a79ae9 /gcc/fortran | |
parent | 9e0d2031c32b748eaf3ea89082c0f8658edcbf82 (diff) | |
download | gcc-b941459c5f0931937fe18cb25bdd608a3933ec20.zip gcc-b941459c5f0931937fe18cb25bdd608a3933ec20.tar.gz gcc-b941459c5f0931937fe18cb25bdd608a3933ec20.tar.bz2 |
re PR fortran/69455 ([F08] Assembler error(s) when using intrinsic modules in two BLOCK)
2019-10-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69455
* trans-decl.c (generate_local_decl): Avoid misconstructed
intrinsic modules in a BLOCK construct.
2019-10-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69455
* gfortran.dg/pr69455_1.f90: New test.
* gfortran.dg/pr69455_2.f90: Ditto.
From-SVN: r277158
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8a1beea..5ba62d2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-10-18 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/69455 + * trans-decl.c (generate_local_decl): Avoid misconstructed + intrinsic modules in a BLOCK construct. + 2019-10-18 Tobias Burnus <tobias@codesourcery.com> PR fortran/91586 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 3ad802e..fc295b4 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -5987,7 +5987,14 @@ generate_local_decl (gfc_symbol * sym) if (sym->ns && sym->ns->construct_entities) { - if (sym->attr.referenced) + /* Construction of the intrinsic modules within a BLOCK + construct, where ONLY and RENAMED entities are included, + seems to be bogus. This is a workaround that can be removed + if someone ever takes on the task to creating full-fledge + modules. See PR 69455. */ + if (sym->attr.referenced + && sym->from_intmod != INTMOD_ISO_C_BINDING + && sym->from_intmod != INTMOD_ISO_FORTRAN_ENV) gfc_get_symbol_decl (sym); sym->mark = 1; } |