This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch, fortran] Fix PR 84394
Am 15.03.19 um 21:31 schrieb Steve Kargl:
Patch is missing?
Entirely correct. Here it is.
Regards
Thomas
Index: symbol.c
===================================================================
--- symbol.c (Revision 269635)
+++ symbol.c (Arbeitskopie)
@@ -1689,7 +1689,15 @@ gfc_add_subroutine (symbol_attribute *attr, const
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;
}
! { 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