re PR fortran/84394 (compiler error when using modules with derived types in block data subprograms)
2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84394 * symbol.c (gfc_add_subroutine): If we are encountering a subrtoutine within a BLOCK DATA and the name starts with an underscore, do not check. 2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84394 * gfortran.dg/blockdata_11.f90: New test. From-SVN: r269721
This commit is contained in:
parent
0759ca4a92
commit
fbf1cec7a4
@ -1,3 +1,10 @@
|
||||
2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/84394
|
||||
* symbol.c (gfc_add_subroutine): If we are encountering a
|
||||
subrtoutine within a BLOCK DATA and the name starts with an
|
||||
underscore, do not check.
|
||||
|
||||
2019-03-15 Harald Anlauf <anlauf@gmx.de>
|
||||
|
||||
PR fortran/60091
|
||||
@ -7,7 +14,7 @@
|
||||
2019-03-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
* gfortran.texi: Document Q edit descriptor under
|
||||
" Extensions not implemented in GNU Fortran".
|
||||
"Extensions not implemented in GNU Fortran".
|
||||
|
||||
2019-03-13 Harald Anlauf <anlauf@gmx.de>
|
||||
|
||||
|
@ -1689,7 +1689,15 @@ gfc_add_subroutine (symbol_attribute *attr, const char *name, locus *where)
|
||||
return false;
|
||||
|
||||
attr->subroutine = 1;
|
||||
return check_conflict (attr, name, where);
|
||||
|
||||
/* If we are looking at a BLOCK DATA statement and we encounter a
|
||||
name with a leading underscore (which must be
|
||||
compiler-generated), do not check. See PR 84394. */
|
||||
|
||||
if (name && *name != '_' && gfc_current_state () != COMP_BLOCK_DATA)
|
||||
return check_conflict (attr, name, where);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/84394
|
||||
* gfortran.dg/blockdata_11.f90: New test.
|
||||
|
||||
2019-03-15 Harald Anlauf <anlauf@gmx.de>
|
||||
|
||||
PR fortran/60091
|
||||
|
33
gcc/testsuite/gfortran.dg/blockdata_11.f90
Normal file
33
gcc/testsuite/gfortran.dg/blockdata_11.f90
Normal file
@ -0,0 +1,33 @@
|
||||
! { dg-do run }
|
||||
! PR 84394 - this used to complain about private procedures in
|
||||
! BLOCK data.
|
||||
module mod1
|
||||
implicit none
|
||||
type :: type1
|
||||
integer :: i1
|
||||
end type type1
|
||||
end module
|
||||
|
||||
module mod2
|
||||
implicit none
|
||||
contains
|
||||
subroutine sub1
|
||||
integer vals
|
||||
common /block1/ vals(5)
|
||||
if (any(vals /= [1, 2, 3, 4, 5])) stop 1
|
||||
end subroutine
|
||||
end module
|
||||
|
||||
block data blkdat
|
||||
use mod1
|
||||
integer vals
|
||||
common /block1/ vals(5)
|
||||
data vals/1, 2, 3, 4, 5/
|
||||
end block data blkdat
|
||||
|
||||
program main
|
||||
use mod2, only: sub1
|
||||
implicit none
|
||||
call sub1
|
||||
end program
|
||||
|
Loading…
x
Reference in New Issue
Block a user