diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-10-29 17:06:58 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-10-29 17:06:58 +0000 |
commit | 285b1f01acaf962e7a668aed7bab4d609a19fc3b (patch) | |
tree | b132a8432a4fff53e86c75aa2a96a5d78521bd39 /gcc | |
parent | 7f71272e3b7a420febff64d3dd7ab58d5988ccaa (diff) | |
download | gcc-285b1f01acaf962e7a668aed7bab4d609a19fc3b.zip gcc-285b1f01acaf962e7a668aed7bab4d609a19fc3b.tar.gz gcc-285b1f01acaf962e7a668aed7bab4d609a19fc3b.tar.bz2 |
[multiple changes]
2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67885
* trans-decl.c (generate_local_decl): Mark PARAMETER entities in
BLOCK construct.
2015-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67885
* gfortran.dg/pr67885.f90: New test.
From-SVN: r229540
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr67885.f90 | 12 |
4 files changed, 33 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a58d1f1..5aed4bd 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/67885 + * trans-decl.c (generate_local_decl): Mark PARAMETER entities in + BLOCK construct. + 2015-10-29 Andrew MacLeod <amacleod@redhat.com> * array.c: Reorder #include's and remove duplicates. diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index ded5c1f..098a327 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -5215,6 +5215,16 @@ generate_local_decl (gfc_symbol * sym) "Unused parameter %qs which has been explicitly " "imported at %L", sym->name, &sym->declared_at); } + + if (sym->ns + && sym->ns->parent + && sym->ns->parent->code + && sym->ns->parent->code->op == EXEC_BLOCK) + { + if (sym->attr.referenced) + gfc_get_symbol_decl (sym); + sym->mark = 1; + } } else if (sym->attr.flavor == FL_PROCEDURE) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 223554a..ee3ac60 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-10-29 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/67885 + * gfortran.dg/pr67885.f90: New test. + 2015-10-29 Jeff Law <law@redhat.com> PR tree-optimization/67892 diff --git a/gcc/testsuite/gfortran.dg/pr67885.f90 b/gcc/testsuite/gfortran.dg/pr67885.f90 new file mode 100644 index 0000000..9b9adce --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr67885.f90 @@ -0,0 +1,12 @@ +! { dg-do run } +! PR fortran/67885 +! Original code contributed by Gerhard Steinmetz +! gerhard dot steinmetz dot fortran at t-online dot de +program p + block + integer, parameter :: a(2) = [1, 2] + integer :: x(2) + x = a + if (x(1) /= 1) call abort + end block +end |