This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/29537] ICE in gfc_match_common for blank common in BLOCK DATA unit
- From: "sgk at troutmask dot apl dot washington dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Oct 2006 15:00:16 -0000
- Subject: [Bug fortran/29537] ICE in gfc_match_common for blank common in BLOCK DATA unit
- References: <bug-29537-11811@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from sgk at troutmask dot apl dot washington dot edu 2006-10-22 15:00 -------
Subject: Re: ICE in gfc_match_common for blank common in BLOCK DATA unit
On Sun, Oct 22, 2006 at 11:36:15AM -0000, aldot at gcc dot gnu dot org wrote:
>
> ------- Comment #5 from aldot at gcc dot gnu dot org 2006-10-22 11:36 -------
> I think the code in comment #1 is valid.
>
> f95, 5.5.2.4 Differences between named common and blank common
> reads:
> A blank common block has the same properties as a named common block except
> (iii) [...] objects in blank common shall not be initially defined.
>
>
> 11.8 defines BLOCK DATA as
>
> block-data-stmt
> [specification-part]
> end-block-data-stmt
>
> where [specification-part] lists no further constrained (wrt blank common).
> blank-common imposed constraints seem to include
> - 5.1 Type decl stmts: [initialization] shall not appear if obj-name is [...]
> an object in blank common
>
You're reading the wrong standard. The final committe draft of
Fortran 95 states:
11.4 Block data program units
A block data program unit is used to provide initial values for
data objects in named common blocks.
I'll note that NAG's compiler only issues a warning.
laptop:kargl[212] cat l.f90
block data a
common c
end block data a
laptop:kargl[213] f95 -c l.f90
Warning: l.f90, line 2: Blank common appears in BLOCK DATA A
If F2003 removes the "named" modifier from common blocks in
its discussion on block data, then gfortran should probably
implement the F2003 behavior with the caveat that -std=f95
should issue a warning.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29537