------- Comment #2 from kargl at gcc dot gnu dot org 2010-08-31 17:53 ------- Try compiling with -fdump-tree-original and inspecting the expected argument lists. You really don't want to use a function here. Use a subroutine.
include <stdio.h> void requestdouble_(double*, double*, char *, int *len); int main() { char str[20]; int len; double lat=10.0; double lon=20.0; requestdouble_(&lat, &lon, str, &len); return 0; } subroutine requestdouble(rlat,rlng,str) IMPLICIT NONE REAL(KIND=8), INTENT(IN) :: rlat ! - latitude - REAL(KIND=8), INTENT(IN) :: rlng ! - longitude - CHARACTER(LEN=*) :: str PRINT *, ' requestdouble rlat=', rlat,' rlng=', rlng str='1111111111111111' RETURN END subroutine requestdouble -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45466