[Patch, fortran] PR 64757 - [5 Regression] ICE in fold_convert_loc, at fold-const.c:2353
Paul Richard Thomas
paul.richard.thomas@gmail.com
Tue Feb 3 21:37:00 GMT 2015
Dear Dominique,
I have fixed all the problems except the last one. For that case, the
other brand gives
type_to_class_30.f90(19): error #7822: Variables containing ultimate
allocatable array components are forbidden from appearing directly in
input/output lists.
print *, TestReference([Test(99), Test(199)])
---------^
compilation aborted for type_to_class_30.f90 (code 1)
which seems to me to be correct. I'll see what I can do to fix it.
Thanks for the help
Paul
On 2 February 2015 at 17:53, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> 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
--
Outside of a dog, a book is a man's best friend. Inside of a dog it's
too dark to read.
Groucho Marx
More information about the Fortran
mailing list