[Bug fortran/96486] get_environment_variable fails for zero-length values
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 5 17:43:12 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96486
--- Comment #6 from kargl at gcc dot gnu.org ---
I do note there are other problems with get_environment_variable.
1) Neither length nor status can be integer(1). gfortran should issue
an error.
2) Fortran 2018 has added an optional errmsg argument. This is not
supported.
3) gfortran is issuing errors that don't make sence (to me).
program foo
integer( 1) i01
integer( 2) i02
integer( 4) i04
integer( 8) i08
#ifdef __GFC_INT_16__
integer(16) i16
#endif
character(len=20) name
print '(A,I0)', 'range(i01) = ', range(i01)
print '(A,I0)', 'range(i02) = ', range(i02)
print '(A,I0)', 'range(i04) = ', range(i04)
print '(A,I0)', 'range(i08) = ', range(i08)
#ifdef __GFC_INT_16__
print '(A,I0)', 'range(i16) = ', range(i16)
#endif
name = ''
! Although valid Fortran, this should probably raise a warning.
call get_environment_variable(name);
name = 'FOO'
call get_environment_variable(name,length=i01); ! Should be an error
call get_environment_variable(name,length=i02); ! Should be ok
call get_environment_variable(name,length=i04); ! Should be ok
call get_environment_variable(name,length=i08); ! Should be ok
#ifdef __GFC_INT_16__
call get_environment_variable(name,length=i16); ! Should be ok
#endif
end program foo
mobile:kargl[256] gfcx -o z a.F90 && ./z
a.F90:29:45:
29 | call get_environment_variable(name,length=i01); ! Should be an
error
| 1
Error: In call to 'get_environment_variable' at (1), type mismatch in argument
length'; pass 'INTEGER(1)' to 'INTEGER(4)'
a.F90:30:45:
30 | call get_environment_variable(name,length=i02);
| 1
Error: In call to 'get_environment_variable' at (1), type mismatch in argument
length'; pass 'INTEGER(2)' to 'INTEGER(4)'
a.F90:32:45:
32 | call get_environment_variable(name,length=i08);
| 1
Error: In call to 'get_environment_variable' at (1), type mismatch in argument
length'; pass 'INTEGER(8)' to 'INTEGER(4)'
More information about the Gcc-bugs
mailing list