[Patch, fortran] PR 64757 - [5 Regression] ICE in fold_convert_loc, at fold-const.c:2353
Dominique Dhumieres
dominiq@lps.ens.fr
Mon Feb 2 16:53:00 GMT 2015
Dear Paul,
I have tested your patch at https://gcc.gnu.org/ml/fortran/2015-01/txtwnaoa1115V.txt
(the latest version) and I found that the test type_to_class_3.f03 is miscompiled
(FAIL) with -flto -O0 -m64 (this does not happens with -flto -O0 -m32 or with -Ox and
x!=0).
In addition, while the reduced test
type :: Test
integer :: i
end type
type :: TestReference
class(Test), allocatable :: test(:)
end type
type(TestReference) :: testList
type(test), allocatable :: x(:)
allocate (testList%test(2), source = [Test(99), Test(199)]) ! Works, of course
print *, size(testList%test)
x = testList%test
print *, x
end
gives what I expect, i.e.,
2
99 199
type :: Test
integer :: i
end type
type :: TestReference
class(Test), allocatable :: test(:)
end type
type(TestReference) :: testList
type(test), allocatable :: x(:)
testList = TestReference([Test(99), Test(199)]) ! Gave: The rank of the element in the
! structure constructor at (1) does not
! match that of the component (1/0)
print *, size(testList%test)
x = testList%test
print *, x
end
gives
1
99
Last problem I see,
print *, TestReference([Test(99), Test(199)])
gives the following ICE
f951: internal compiler error: Bad IO basetype (7)
type_to_class_3_red_2.f03:12:0:
print *, TestReference([Test(99), Test(199)])
Cheers,
Dominique
More information about the Gcc-patches
mailing list