https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105473
--- Comment #17 from harper at msor dot vuw.ac.nz --- On comparing that with ifort's result I think that the only remaining bug is that if decimal='comma' then '.' is neither a decimal symbol nor a separator (see f2018 13.6). On Mon, 16 May 2022, jvdelisle at gcc dot gnu.org wrote: > Date: Mon, 16 May 2022 00:49:44 +0000 > From: jvdelisle at gcc dot gnu.org <gcc-bugzi...@gcc.gnu.org> > To: John Harper <john.har...@vuw.ac.nz> > Subject: [Bug fortran/105473] semicolon allowed when list-directed read > integer with decimal='point' > Resent-Date: Mon, 16 May 2022 12:49:53 +1200 (NZST) > Resent-From: <john.har...@vuw.ac.nz> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105473 > > --- Comment #13 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- > With John's multiple combinations test case I get the following results with > the attached patch. All places where we gave an error before the patch, we > give > errors now plus new errors > > $ gfc multi.f90 > $ ./a.out > i= 1 input(i) = "2,5," > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > i= 2 input(i) = "2;5," > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 3 input(i) = "2 5," > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 4 input(i) = "2.5," > with decimal=point x(:) = 2.50000000 5.00000000 ios= -1 > with decimal=comma x(:) = 2.50000000 666.000000 ios= 5010 > i= 5 input(i) = "2,5;" > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > i= 6 input(i) = "2;5;" > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 7 input(i) = "2 5;" > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 8 input(i) = "2.5;" > with decimal=point x(:) = 2.50000000 5.00000000 ios= 5010 > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > i= 9 input(i) = "2,5 " > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > i= 10 input(i) = "2;5 " > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 11 input(i) = "2 5 " > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 12 input(i) = "2.5 " > with decimal=point x(:) = 2.50000000 5.00000000 ios= -1 > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > i= 13 input(i) = "2,5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > i= 14 input(i) = "2;5." > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 15 input(i) = "2 5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 16 input(i) = "2.5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > [jerry@amdr pr105473]$ gfc multi.f90 > [jerry@amdr pr105473]$ ./a.out > i= 1 input(i) = "2,5," > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > Bad real number in item 1 of list input > i= 2 input(i) = "2;5," > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 3 input(i) = "2 5," > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 4 input(i) = "2.5," > with decimal=point x(:) = 2.50000000 5.00000000 ios= -1 > End of file > with decimal=comma x(:) = 2.50000000 666.000000 ios= 5010 > Bad real number in item 1 of list input > i= 5 input(i) = "2,5;" > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > End of file > i= 6 input(i) = "2;5;" > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 7 input(i) = "2 5;" > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 8 input(i) = "2.5;" > with decimal=point x(:) = 2.50000000 5.00000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > End of file > i= 9 input(i) = "2,5 " > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > End of file > i= 10 input(i) = "2;5 " > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 11 input(i) = "2 5 " > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 12 input(i) = "2.5 " > with decimal=point x(:) = 2.50000000 5.00000000 ios= -1 > End of file > with decimal=comma x(:) = 2.50000000 666.000000 ios= -1 > End of file > i= 13 input(i) = "2,5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > Bad real number in item 1 of list input > i= 14 input(i) = "2;5." > with decimal=point x(:) = 2.00000000 666.000000 ios= 5010 > Semicolon not allowed as separator with DECIMAL='point' > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 15 input(i) = "2 5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 0 > with decimal=comma x(:) = 2.00000000 5.00000000 ios= 0 > i= 16 input(i) = "2.5." > with decimal=point x(:) = 2.00000000 5.00000000 ios= 5010 > Bad real number in item 1 of list input > with decimal=comma x(:) = 2.00000000 666.000000 ios= 5010 > Bad real number in item 1 of list input > > -- > You are receiving this mail because: > You reported the bug. > -- John Harper, School of Mathematics and Statistics Victoria Univ. of Wellington, PO Box 600, Wellington 6140, New Zealand. e-mail john.har...@vuw.ac.nz phone +64(0) 4 463 5276