diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-12-08 13:42:42 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2019-12-08 13:42:42 +0000 |
commit | c212316b4a774f8283f097d46e56fb8256502304 (patch) | |
tree | 33a6ab7b520dc8378c1100b080dd6947d56ec8c0 /gcc | |
parent | f477062c2ee3410545d9ff4c68bb080ae5c4f8ae (diff) | |
download | gcc-c212316b4a774f8283f097d46e56fb8256502304.zip gcc-c212316b4a774f8283f097d46e56fb8256502304.tar.gz gcc-c212316b4a774f8283f097d46e56fb8256502304.tar.bz2 |
Error on Associate with a program.
2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/92780
* resolve.c (resolve_assoc_var): Issue error if the associating
entity is a program.
2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/92780
* gfortran.dg/associate_50.f90: New test.
From-SVN: r279088
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/associate_50.f90 | 8 |
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5265c2c..c3a4c3a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/92780 + * resolve.c (resolve_assoc_var): Issue error if the associating + entity is a program. + +2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/92764 * interface.c (gfc_procedure_use): Check for existence of derived component before using (twice). diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 278dad3..b437c59 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -8842,6 +8842,12 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target) gcc_assert (target->symtree); tsym = target->symtree->n.sym; + if (tsym->attr.flavor == FL_PROGRAM) + { + gfc_error ("Associating entity %qs at %L is a PROGRAM", + tsym->name, &target->where); + return; + } sym->attr.asynchronous = tsym->attr.asynchronous; sym->attr.volatile_ = tsym->attr.volatile_; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d2f9b47..8e8e1e9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/92780 + * gfortran.dg/associate_50.f90: New test. + +2018-12-08 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/92764 * gfortran.dg/interface_44.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/associate_50.f90 b/gcc/testsuite/gfortran.dg/associate_50.f90 new file mode 100644 index 0000000..d759db5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/associate_50.f90 @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR 92780 - this used to ICE instead of being rejected. +! Test case by Gerhard Steinmetz. + +program p + associate (y => p) ! { dg-error "is a PROGRAM" } + end associate +end program p |