public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size
@ 2007-04-13 8:13 David dot Duffy at qimr dot edu dot au
2007-04-13 10:06 ` [Bug fortran/31560] " burnus at gcc dot gnu dot org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: David dot Duffy at qimr dot edu dot au @ 2007-04-13 8:13 UTC (permalink / raw)
To: gcc-bugs
GNU Fortran (GCC) 4.3.0 20070412 (experimental)
Linux 2.4.20-20030701 #2 SMP
use ped_class
type (ped_data) :: dataset
integer, dimension(dataset%maxsiz) :: nobs
works but
use ped_class
integer, dimension(dataset%maxsiz) :: nobs
type (ped_data) :: dataset
doesn't.
ped_data is defined in module ped_class and has an integer slot %maxsiz
--
Summary: Array size declaration depended on order of declaration
of variable containing size
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: David dot Duffy at qimr dot edu dot au
GCC host triplet: linux
GCC target triplet: i386
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] Array size declaration depended on order of declaration of variable containing size
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
@ 2007-04-13 10:06 ` burnus at gcc dot gnu dot org
2007-04-13 14:23 ` tobi at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: burnus at gcc dot gnu dot org @ 2007-04-13 10:06 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from burnus at gcc dot gnu dot org 2007-04-13 11:05 -------
Could you post a complete example? I have problems to create one with
type (ped_data) :: dataset
integer, dimension(dataset%maxsiz) :: nobs
as parameter is not allowed in a type specification and using a simple
type ped_data
integer :: maxsiz = 5
end type ped_data
does also not work:
integer, dimension(dataset%maxsiz) :: nobs
1
Error: Variable 'dataset' cannot appear in the expression at (1)
or in words of NAG f95:
DATASET is not permitted in a specification expression
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] Array size declaration depended on order of declaration of variable containing size
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
2007-04-13 10:06 ` [Bug fortran/31560] " burnus at gcc dot gnu dot org
@ 2007-04-13 14:23 ` tobi at gcc dot gnu dot org
2007-04-14 0:04 ` David dot Duffy at qimr dot edu dot au
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tobi at gcc dot gnu dot org @ 2007-04-13 14:23 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from tobi at gcc dot gnu dot org 2007-04-13 15:22 -------
(In reply to comment #0)
> GNU Fortran (GCC) 4.3.0 20070412 (experimental)
> Linux 2.4.20-20030701 #2 SMP
>
> use ped_class
> type (ped_data) :: dataset
> integer, dimension(dataset%maxsiz) :: nobs
>
> works but
>
> use ped_class
> integer, dimension(dataset%maxsiz) :: nobs
> type (ped_data) :: dataset
>
> doesn't.
If I understand you correctly, what you're trying to do is invalid. You may
only reference previously declared objects in data object declarations. In
your second example dataset is referenced before it is declared.
Please provide a complete testcase, and if the problem is indeed the order of
declarations please tell us where you think I'm wrong.
--
tobi at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] Array size declaration depended on order of declaration of variable containing size
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
2007-04-13 10:06 ` [Bug fortran/31560] " burnus at gcc dot gnu dot org
2007-04-13 14:23 ` tobi at gcc dot gnu dot org
@ 2007-04-14 0:04 ` David dot Duffy at qimr dot edu dot au
2007-04-14 0:09 ` David dot Duffy at qimr dot edu dot au
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: David dot Duffy at qimr dot edu dot au @ 2007-04-14 0:04 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from David dot Duffy at qimr dot edu dot au 2007-04-14 01:03 -------
Subject: Re: Array size declaration depended on order of
declaration of variable containing size
On Sat, 13 Apr 2007, tobi at gcc dot gnu dot org wrote:
>
>
> ------- Comment #2 from tobi at gcc dot gnu dot org 2007-04-13 15:22 -------
> (In reply to comment #0)
>> GNU Fortran (GCC) 4.3.0 20070412 (experimental)
>> Linux 2.4.20-20030701 #2 SMP
>>
>> use ped_class
>> type (ped_data) :: dataset
>> integer, dimension(dataset%maxsiz) :: nobs
>>
>> works but
>>
>> use ped_class
>> integer, dimension(dataset%maxsiz) :: nobs
>> type (ped_data) :: dataset
>>
>> doesn't.
>
> If I understand you correctly, what you're trying to do is invalid. You may
> only reference previously declared objects in data object declarations. In
> your second example dataset is referenced before it is declared.
>
> Please provide a complete testcase, and if the problem is indeed the order of
> declarations please tell us where you think I'm wrong.
>
Hi.
Please find a cutdown example attached. In this form, it compiles successfully
with gfortran, ifort and g95. If line 251 is commented out and line 256
uncommented, only g95 compiles it successfully.
Since dataset, nobs and relid are all subroutine arguments, it seems
plausible to me that the order of declaration should be irrelevant, even
though it require more work by the compiler. I haven't looked at the Fortran
Standard (and probably couldn't work out what it was saying anyway ;)) to see
if there is a defined behaviour.
Cheers,
David Duffy.
------- Comment #4 from David dot Duffy at qimr dot edu dot au 2007-04-14 01:03 -------
Created an attachment (id=13364)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13364&action=view)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] Array size declaration depended on order of declaration of variable containing size
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (2 preceding siblings ...)
2007-04-14 0:04 ` David dot Duffy at qimr dot edu dot au
@ 2007-04-14 0:09 ` David dot Duffy at qimr dot edu dot au
2007-05-22 16:59 ` [Bug fortran/31560] improve error message for using specification expr. of later decl burnus at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: David dot Duffy at qimr dot edu dot au @ 2007-04-14 0:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from David dot Duffy at qimr dot edu dot au 2007-04-14 01:09 -------
Subject: Re: Array size declaration depended on order of
declaration of variable containing size
You wrote:
> as parameter is not allowed in a type specification and using a simple
> type ped_data
> integer :: maxsiz = 5
> end type ped_data
> does also not work:
> integer, dimension(dataset%maxsiz) :: nobs
> 1
> Error: Variable 'dataset' cannot appear in the expression at (1)
> or in words of NAG f95:
> DATASET is not permitted in a specification expression
and tobi at gcc dot gnu dot org wrote:
>
>
> ------- Comment #2 from tobi at gcc dot gnu dot org 2007-04-13 15:22 -------
> (In reply to comment #0)
>> GNU Fortran (GCC) 4.3.0 20070412 (experimental)
>> Linux 2.4.20-20030701 #2 SMP
>>
>> use ped_class
>> type (ped_data) :: dataset
>> integer, dimension(dataset%maxsiz) :: nobs
>>
>> works but
>>
>> use ped_class
>> integer, dimension(dataset%maxsiz) :: nobs
>> type (ped_data) :: dataset
>>
>> doesn't.
>
> If I understand you correctly, what you're trying to do is invalid. You may
> only reference previously declared objects in data object declarations. In
> your second example dataset is referenced before it is declared.
>
> Please provide a complete testcase, and if the problem is indeed the order of
> declarations please tell us where you think I'm wrong.
>
Hi.
Please find a cutdown example attached. In this form, it compiles successfully
with gfortran, ifort and g95. If line 251 is commented out and line 256
uncommented, only g95 compiles it successfully.
Since dataset, nobs and relid are all subroutine arguments, it seems
plausible to me that the order of declaration should be irrelevant, even
though it require more work by the compiler. I haven't looked at the Fortran
Standard (and probably couldn't work out what it was saying anyway ;)) to see
if there is a defined behaviour.
Cheers,
David Duffy.
!
! Output stream
!
module outstream
integer :: outstr
end module outstream
!
! One big pedigree data structure
! Updating size requires copying entire structure
! (hopefully maintaining contiguous storage)
!
module idstring_widths
integer, parameter :: ped_width = 20
integer, parameter :: id_width = 12
end module idstring_widths
module ped_class
use idstring_widths
type ped_data
integer :: nped ! number of pedigrees
integer :: nact ! number of active pedigrees
integer :: maxsiz ! size of largest pedigree
integer :: nobs ! number of records
integer :: numloc ! number of columns of locus data
! pedigree level data
character (len=ped_width), dimension(:), allocatable :: pedigree
integer, dimension(:), allocatable :: num
integer, dimension(:), allocatable :: nfound
integer, dimension(:), allocatable :: actset
! individual level data
integer, dimension(:), allocatable :: iped
character (len=id_width), dimension(:), allocatable :: id
integer, dimension(:), allocatable :: fa
integer, dimension(:), allocatable :: mo
integer, dimension(:), allocatable :: sex
double precision, dimension(:,:), allocatable :: locus
! useful work arrays -- usually referring to locus being currently analysed
logical, dimension(:), allocatable :: untyped
end type ped_data
contains
!
! allocate pedigree data
!
subroutine setup_peds(nped, nobs, numloc, dataset)
integer :: nobs, nped, numloc
type (ped_data) :: dataset
dataset%nped = nped
dataset%nact = nped
dataset%maxsiz = 0
dataset%nobs = nobs
dataset%numloc = numloc
allocate(dataset%pedigree(nped))
allocate(dataset%num(0:nped))
allocate(dataset%nfound(nped))
allocate(dataset%actset(nped))
dataset%num(0)=0
allocate(dataset%iped(nobs))
allocate(dataset%id(nobs))
allocate(dataset%fa(nobs))
allocate(dataset%mo(nobs))
allocate(dataset%sex(nobs))
allocate(dataset%locus(nobs, numloc))
allocate(dataset%untyped(nobs))
end subroutine setup_peds
!
! copy pedigree data
!
subroutine copy_peds(set1, set2)
type (ped_data) :: set1, set2
integer :: i
set2%nped = set1%nped
set2%nact = set1%nact
set2%maxsiz = set1%maxsiz
set2%nobs = set1%nobs
set2%numloc = set1%numloc
do i=0, set1%nped
set2%num(i) = set1%num(i)
end do
do i=1, set1%nped
set2%pedigree(i) = set1%pedigree(i)
set2%nfound(i) = set1%nfound(i)
set2%actset(i) = set1%actset(i)
end do
do i=1, set1%nobs
set2%iped(i) = set1%iped(i)
set2%id(i) = set1%id(i)
set2%fa(i) = set1%fa(i)
set2%mo(i) = set1%mo(i)
set2%sex(i) = set1%sex(i)
set2%locus(i, 1:set1%numloc) = set1%locus(i, 1:set1%numloc)
end do
end subroutine copy_peds
!
! deallocate pedigree structure arrays
!
subroutine cleanup_peds(dataset)
type (ped_data) :: dataset
if (allocated(dataset%locus)) then
deallocate(dataset%pedigree)
deallocate(dataset%num)
deallocate(dataset%nfound)
deallocate(dataset%actset)
deallocate(dataset%iped)
deallocate(dataset%id)
deallocate(dataset%fa)
deallocate(dataset%mo)
deallocate(dataset%sex)
deallocate(dataset%locus)
deallocate(dataset%untyped)
end if
dataset%nped=0
dataset%nact=0
dataset%maxsiz=0
dataset%nobs=0
dataset%numloc=0
end subroutine cleanup_peds
end module ped_class
program tester
use outstream
use ped_class
type (ped_data) :: work
integer :: MISS=-9999
outstr=6
call setup_peds(1, 4, 1, work)
work%maxsiz=4
work%pedigree(1)='Test'
work%num(1)=4
work%nfound(1)=2
work%actset(1)=2
work%iped=1
work%id(1)='1'
work%id(2)='2'
work%id(3)='3'
work%id(4)='4'
work%fa=MISS
work%mo=MISS
work%fa(3)=1
work%mo(3)=2
work%fa(4)=1
work%mo(4)=2
work%sex=1
work%locus=1.0d0
call getrelval('sib', 'mea', 'test', 4, 1, MISS, work, 0)
call cleanup_peds(work)
end program tester
!
! Get values for trait in relatives
!
subroutine getrelval(relate, summary, locnam, loctyp, trait, &
sumval, dataset, plevel)
use outstream
use ped_class
implicit none
character (len=3), intent(in) :: relate, summary
character (len=10), intent(in) :: locnam
integer, intent(in) :: loctyp
integer, intent(in) :: trait, sumval
type (ped_data) :: dataset
integer, intent(in) :: plevel
!
integer, parameter :: MISS=-9999, MAXREC=20
! trait values in relatives
integer, dimension(dataset%maxsiz) :: nobs
integer, dimension(dataset%maxsiz, MAXREC) :: relid
integer :: currf, currm, i, idx, j, k, nsibs, num, pedoffset, ped, pos, &
reltyp, totobs
character (len=1) :: ch
character (len=6), dimension(13) :: relnam = (/ 'All ', &
'Offspring', 'Son ', 'Daughter ', &
'Parent ', 'Father ', 'Mother ', &
'Sibling ', 'Brother ', 'Sister ', &
'Spouse ', 'Husband ', 'Wife ' /)
reltyp=1
if (relate=='sib') then
reltyp=8
end if
if (plevel >= 0) then
write(outstr, '(/3a/a)') 'Pedigree ID Rel Summary (',
summary, ')', &
'------------ ------------ ---
--------------------'
end if
totobs=0
! Siblings
if (reltyp==8 .or. reltyp==9 .or. reltyp==10) then
do ped=1, dataset%nped
if (dataset%actset(ped) > 0) then
pedoffset=dataset%num(ped-1)+dataset%nfound(ped)
num=dataset%num(ped)-dataset%num(ped-1)
do k=1, num
nobs(k)=-1
end do
nobs((dataset%nfound(ped)+1):num)=0
currf=MISS
currm=MISS
idx=num
i=dataset%num(ped)
do while (i > pedoffset)
currf=dataset%fa(i)
currm=dataset%mo(i)
nsibs=0
pos=i-1
do while (dataset%fa(pos)==currf .and. dataset%mo(pos)==currm)
nsibs=nsibs+1
pos=pos-1
end do
do j=pos+1, i
if (reltyp==8 .or. (reltyp==9 .and. dataset%sex(j)==1) .or. &
(reltyp==10 .and. dataset%sex(j)==2)) then
if (dataset%locus(j,trait) /= MISS .and. nobs(idx) < MAXREC) then
nobs(idx)=nobs(idx)+1
relid(idx, nobs(idx))=j
end if
end if
end do
do j=idx-nsibs, idx-1
nobs(j)=nobs(idx)
do k=1, nobs(idx)
relid(j,k)=relid(idx,k)
end do
end do
i=pos
idx=idx-nsibs-1
end do
call prirelval(relnam(reltyp), summary, trait, loctyp, ped, nobs, relid,
&
sumval, totobs, dataset, plevel)
end if
end do
end if
if (plevel <= 0 .and. totobs>=30) then
write(outstr, '(a)') '...'
end if
write(outstr, '(/a,i6,a)') &
'Processed', totobs, ' trait values from relatives.'
end subroutine getrelval
!
! Output values for each eligible persion
!
subroutine prirelval(relate, summary, trait, loctyp, ped, &
nobs, relid, sumval, totobs, dataset, plevel)
use outstream
use ped_class
implicit none
integer, parameter :: MAXREC=20
character (len=3), intent(in) :: relate
character (len=3), intent(in) :: summary
integer, intent(in) :: trait, loctyp
integer, intent(in) :: ped
! FROM HERE
type (ped_data) :: dataset
! trait values in relatives
integer, dimension(dataset%maxsiz) :: nobs
integer, dimension(dataset%maxsiz, MAXREC) :: relid
! TO HERE
! type (ped_data) :: dataset
integer, intent(in) :: sumval
integer, intent(inout) :: totobs
integer, intent(in) :: plevel
!
integer, parameter :: MISS=-9999
integer :: i, idx, j, n, pedoffset
double precision :: res
character (len=1) :: ch
! functions
!
! Detailed output
!
pedoffset=dataset%num(ped-1)
if (summary=='sum' .or. summary=='mea') then
idx=0
do i=pedoffset+1, dataset%num(ped)
idx=idx+1
res=MISS
if (nobs(idx) > 0) then
totobs=totobs+1
res=0.0d0
do j=1, nobs(idx)
res=res+dataset%locus(relid(idx,j),trait)
end do
if (loctyp==4) res=res-dfloat(nobs(idx))
if (summary=='mea') res=res/dfloat(nobs(idx))
if (plevel>0 .or. (plevel==0 .and. totobs<30)) then
write(outstr, '(a12,1x,a12,1x,a3,1x,f16.4)') &
dataset%pedigree(ped), dataset%id(i), relate, res
end if
else if (nobs(idx) == 0 .and. &
(plevel>0 .or. (plevel==0 .and. totobs<30))) then
write(outstr, '(a12,1x,a12,1x,a3,12x,a)') &
dataset%pedigree(ped), dataset%id(i), relate, 'x'
end if
if (sumval /= MISS) dataset%locus(i, sumval)=res
end do
end if
end subroutine prirelval
!
! binary trait as character
!
subroutine wraff(value, ch, typ)
double precision, intent(in) :: value
character (len=1), intent(out) :: ch
integer, intent(in) :: typ
character (len=1), dimension(6), parameter :: let=(/'x','n','y','?','U','A'/)
ch=let(1+3*(typ-1))
if (value == 1.0d0) then
ch=let(2+3*(typ-1))
else if (value == 2.0d0) then
ch=let(3+3*(typ-1))
end if
end subroutine wraff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] improve error message for using specification expr. of later decl.
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (3 preceding siblings ...)
2007-04-14 0:09 ` David dot Duffy at qimr dot edu dot au
@ 2007-05-22 16:59 ` burnus at gcc dot gnu dot org
2007-05-22 17:01 ` [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions burnus at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: burnus at gcc dot gnu dot org @ 2007-05-22 16:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from burnus at gcc dot gnu dot org 2007-05-22 17:58 -------
> Created an attachment (id=13364)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13364&action=view) [edit]
This is only standard conform after changing dfloat() to real(..., kind(0d0))
and after changing
call getrelval('sib', 'mea', 'test', 4, 1, MISS, work, 0)
into
call getrelval('sib', 'mea', 'test ', 4, 1, MISS, work, 0)
With these changes it is Fortran 2003 standard conform and also compiles with
NAG f95
> If line 251 is commented out and line 256 uncommented, only g95 compiles it
> successfully.
> Since dataset, nobs and relid are all subroutine arguments, it seems
> plausible to me that the order of declaration should be irrelevant, even
> though it require more work by the compiler. I haven't looked at the Fortran
> Standard (and probably couldn't work out what it was saying anyway ;)) to see
> if there is a defined behaviour.
integer, dimension(dataset%maxsiz) :: nobs
integer, dimension(dataset%maxsiz, MAXREC) :: relid
type (ped_data) :: dataset
I think gfortran rightly rejects the file though the error message should be
improved.
NAG f95 writes:
Error: z.f90, line 253: Implicit type for DATASET
detected at %@MAXSIZ
Error: z.f90, line 253: DATASET is not of derived type
detected at %@MAXSIZ
Error: z.f90, line 256: Symbol DATASET has already been implicitly typed
detected at ::@DATASET
ifort is also better:
fortcom: Error: z.f90, line 253: The structure-name is invalid or is missing.
integer, dimension(dataset%maxsiz) :: nobs
gfortran:
Error: Expected another dimension in array declaration at (1)
and later:
Error: Symbol 'nobs' at (1) has no IMPLICIT type
If I'm not mistaken, the relevant part of the standard is:
"A variable within a specification expression shall have its type
and type parameters, if any, specified by a previous declaration
in the same scoping unit, by the implicit typing rules in effect
for the scoping unit, or by host or use association. If a variable
in a specification expression is typed by the implicit typing rules,
its appearance in any subsequent type declaration statement shall
confirm the implied type and type parameters."
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu dot
| |org
Keywords| |diagnostic
Last reconfirmed|0000-00-00 00:00:00 |2007-05-22 17:58:49
date| |
Summary|Array size declaration |improve error message for
|depended on order of |using specification expr. of
|declaration of variable |later decl.
|containing size |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (4 preceding siblings ...)
2007-05-22 16:59 ` [Bug fortran/31560] improve error message for using specification expr. of later decl burnus at gcc dot gnu dot org
@ 2007-05-22 17:01 ` burnus at gcc dot gnu dot org
2007-05-23 1:37 ` David dot Duffy at qimr dot edu dot au
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: burnus at gcc dot gnu dot org @ 2007-05-22 17:01 UTC (permalink / raw)
To: gcc-bugs
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Ever Confirmed|0 |1
GCC host triplet|linux |
GCC target triplet|i386 |
Last reconfirmed|2007-05-22 17:58:49 |2007-05-22 18:01:33
date| |
Summary|improve error message for |improve error message for
|using specification expr. of|using components of later
|later decl. |decl. variables in
| |specification expressions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (5 preceding siblings ...)
2007-05-22 17:01 ` [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions burnus at gcc dot gnu dot org
@ 2007-05-23 1:37 ` David dot Duffy at qimr dot edu dot au
2007-11-20 18:03 ` fxcoudert at gcc dot gnu dot org
2009-01-03 23:46 ` dfranke at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: David dot Duffy at qimr dot edu dot au @ 2007-05-23 1:37 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from David dot Duffy at qimr dot edu dot au 2007-05-23 02:37 -------
Subject: Re: improve error message for using specification
expr. of later decl.
On Wed, 22 May 2007, burnus at gcc dot gnu dot org wrote:
> I think gfortran rightly rejects the file though the error message should be
> improved.
Thanks for spending so much time on this! I might mention that the actual
program the example comes from compiles with gfortran and runs beautifully
on my data, while the executable compiled with ifort segfaults (I have yet
to sort out why).
Cheers, David Duffy.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (6 preceding siblings ...)
2007-05-23 1:37 ` David dot Duffy at qimr dot edu dot au
@ 2007-11-20 18:03 ` fxcoudert at gcc dot gnu dot org
2009-01-03 23:46 ` dfranke at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2007-11-20 18:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from fxcoudert at gcc dot gnu dot org 2007-11-20 18:03 -------
Here is a minimal testcase that reproduces the unclear error message:
subroutine prirelval(nobs, dataset)
type ped_data
integer :: maxsiz
end type ped_data
integer, dimension(dataset%maxsiz) :: nobs
type (ped_data) :: dataset
end subroutine prirelval
$ gfortran z.f90
z.f90:6.28:
integer, dimension(dataset%maxsiz) :: nobs
1
Error: Expected another dimension in array declaration at (1)
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2007-05-22 18:01:33 |2007-11-20 18:03:32
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
` (7 preceding siblings ...)
2007-11-20 18:03 ` fxcoudert at gcc dot gnu dot org
@ 2009-01-03 23:46 ` dfranke at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-03 23:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from dfranke at gcc dot gnu dot org 2009-01-03 23:46 -------
*** Bug 35951 has been marked as a duplicate of this bug. ***
--
dfranke at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |john dot young at jrc dot co
| |dot jp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31560
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-01-03 23:46 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-13 8:13 [Bug fortran/31560] New: Array size declaration depended on order of declaration of variable containing size David dot Duffy at qimr dot edu dot au
2007-04-13 10:06 ` [Bug fortran/31560] " burnus at gcc dot gnu dot org
2007-04-13 14:23 ` tobi at gcc dot gnu dot org
2007-04-14 0:04 ` David dot Duffy at qimr dot edu dot au
2007-04-14 0:09 ` David dot Duffy at qimr dot edu dot au
2007-05-22 16:59 ` [Bug fortran/31560] improve error message for using specification expr. of later decl burnus at gcc dot gnu dot org
2007-05-22 17:01 ` [Bug fortran/31560] improve error message for using components of later decl. variables in specification expressions burnus at gcc dot gnu dot org
2007-05-23 1:37 ` David dot Duffy at qimr dot edu dot au
2007-11-20 18:03 ` fxcoudert at gcc dot gnu dot org
2009-01-03 23:46 ` dfranke at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).