re PR fortran/83246 (internal compiler error or loader problem might be related to a PARAMETER statement being in a BLOCK)
PR fortran/83246 PR fortran/89084 * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs if sym->ns->construct_entities rather than if sym->ns->parent->code->op == EXEC_BLOCK. * gfortran.dg/pr89084.f90: New test. * gfortran.dg/lto/pr89084_0.f90: New test. * gfortran.dg/pr83246.f90: New test. From-SVN: r268462
This commit is contained in:
parent
d9f0237f70
commit
30253e2356
|
@ -1,3 +1,11 @@
|
||||||
|
2019-02-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR fortran/83246
|
||||||
|
PR fortran/89084
|
||||||
|
* trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
|
||||||
|
if sym->ns->construct_entities rather than if
|
||||||
|
sym->ns->parent->code->op == EXEC_BLOCK.
|
||||||
|
|
||||||
2019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
|
2019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/88669
|
PR fortran/88669
|
||||||
|
|
|
@ -5735,10 +5735,7 @@ generate_local_decl (gfc_symbol * sym)
|
||||||
"imported at %L", sym->name, &sym->declared_at);
|
"imported at %L", sym->name, &sym->declared_at);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sym->ns
|
if (sym->ns && sym->ns->construct_entities)
|
||||||
&& sym->ns->parent
|
|
||||||
&& sym->ns->parent->code
|
|
||||||
&& sym->ns->parent->code->op == EXEC_BLOCK)
|
|
||||||
{
|
{
|
||||||
if (sym->attr.referenced)
|
if (sym->attr.referenced)
|
||||||
gfc_get_symbol_decl (sym);
|
gfc_get_symbol_decl (sym);
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2019-02-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR fortran/83246
|
||||||
|
PR fortran/89084
|
||||||
|
* gfortran.dg/pr89084.f90: New test.
|
||||||
|
* gfortran.dg/lto/pr89084_0.f90: New test.
|
||||||
|
* gfortran.dg/pr83246.f90: New test.
|
||||||
|
|
||||||
2019-02-01 Marek Polacek <polacek@redhat.com>
|
2019-02-01 Marek Polacek <polacek@redhat.com>
|
||||||
|
|
||||||
PR c++/88325 - ICE with invalid out-of-line template member definition.
|
PR c++/88325 - ICE with invalid out-of-line template member definition.
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
! PR fortran/89084
|
||||||
|
! { dg-lto-do link }
|
||||||
|
! { dg-lto-options {{ -O0 -flto }} }
|
||||||
|
|
||||||
|
integer function foo ()
|
||||||
|
write (*,*) 'foo'
|
||||||
|
block
|
||||||
|
integer, parameter :: idxs(3) = (/ 1, 2, 3 /)
|
||||||
|
integer :: i
|
||||||
|
foo = 0
|
||||||
|
do i = 1, size(idxs)
|
||||||
|
foo = foo + idxs(i)
|
||||||
|
enddo
|
||||||
|
end block
|
||||||
|
end function foo
|
||||||
|
program pr89084
|
||||||
|
integer :: i
|
||||||
|
interface
|
||||||
|
integer function foo ()
|
||||||
|
end function
|
||||||
|
end interface
|
||||||
|
i = foo ()
|
||||||
|
if (i.ne.6) stop 1
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
! PR fortran/83246
|
||||||
|
! { dg-do link }
|
||||||
|
program dusty_corner
|
||||||
|
write(*,*)'BLOCK TESTS'
|
||||||
|
MAKEDATAP: block
|
||||||
|
integer,parameter :: scratch(*)=[1,2,3]
|
||||||
|
write(*,*)scratch
|
||||||
|
endblock MAKEDATAP
|
||||||
|
end program dusty_corner
|
|
@ -0,0 +1,23 @@
|
||||||
|
! PR fortran/89084
|
||||||
|
! { dg-do run }
|
||||||
|
|
||||||
|
integer function foo ()
|
||||||
|
write (*,*) 'foo'
|
||||||
|
block
|
||||||
|
integer, parameter :: idxs(3) = (/ 1, 2, 3 /)
|
||||||
|
integer :: i
|
||||||
|
foo = 0
|
||||||
|
do i = 1, size(idxs)
|
||||||
|
foo = foo + idxs(i)
|
||||||
|
enddo
|
||||||
|
end block
|
||||||
|
end function foo
|
||||||
|
program pr89084
|
||||||
|
integer :: i
|
||||||
|
interface
|
||||||
|
integer function foo ()
|
||||||
|
end function
|
||||||
|
end interface
|
||||||
|
i = foo ()
|
||||||
|
if (i.ne.6) stop 1
|
||||||
|
end
|
Loading…
Reference in New Issue