------- Comment #5 from Lulin dot Song at gmail dot com 2010-08-31 18:06 ------- (In reply to comment #2) > 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 > Thanks. I do know how to work around it with subroutine which I already did in my program. But it doesn't explain why 4.1.2 version allows return character string from function. Our program works well until the gcc upgrade. Is this new standard?
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45466