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

Reply via email to