[Bug fortran/44945] [4.6 Regression] Wrong decl for module vars / FAIL: gfortran.dg/char_array_structure_constructor.f90
dominiq at lps dot ens dot fr
gcc-bugzilla@gcc.gnu.org
Sat Jul 24 05:38:00 GMT 2010
------- Comment #21 from dominiq at lps dot ens dot fr 2010-07-24 05:38 -------
In my opinion revision 162487 is only a partial fix of the problem. If I split
a modified test case in two files:
[macbook] f90/bug% cat char_array_structure_constructor_db_1.f90
MODULE global
TYPE :: dt
CHARACTER(4) a
CHARACTER(4) b(2)
END TYPE
TYPE (dt), DIMENSION(:), ALLOCATABLE, SAVE :: c
END MODULE global
[macbook] f90/bug% cat char_array_structure_constructor_db_2.f90
program char_array_structure_constructor
USE global
call alloc (2)
if (any (c%a /= "wxyz")) call abort ()
contains
SUBROUTINE alloc (n)
USE global
ALLOCATE (c(n), STAT=IALLOC_FLAG)
DO i = 1,n
c (i) = dt ("wxyz",(/"abcd","efgh"/))
ENDDO
end subroutine alloc
END program char_array_structure_constructor
and compile it with
[macbook] f90/bug% gfc -fwhole-file -m32 -O3 -fomit-frame-pointer
char_array_structure_constructor_db_1.f90
char_array_structure_constructor_db_2.f90
I still get
[macbook] f90/bug% a.out
Bus error
Note that it is not surprising since -fwhole-file operates at the file level.
However if the test is valid fortran, then it should not be miscompiled if
split in two files.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44945
More information about the Gcc-bugs
mailing list