http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46588
Summary: Segfault on automatic function Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: oleg.steb...@gmail.com $ cat check.f90 program ds implicit none character(len = 4) :: ins = '+ - ' character(len = 20) st, aufun st = aufun(ins) ! результата равна n print *, st end function aufun(pm) character(len = *) pm character(len = *) aufun character(len = len(aufun)) temp temp = pm // pm //pm // pm aufun = '# ' // trim(temp) // ' #' end $ gfortran -v check.f90 Target: i686-pc-cygwin compiled by GNU C version 4.3.2 20080827 (beta) 2, GMP version 4.2.4, MPFR version 2.4.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 check.f90:7: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $cat check2.f90 function aufun(pm) character(len = *) pm character(len = *) aufun SAVE character(len = len(aufun)) temp temp = pm // pm //pm // pm aufun = '# ' // trim(temp) // ' #' end $ gfortran check2.f90 check2.f90:4.15: SAVE character(len = len(afun)) temp ! \xD1\xF2\xF0\xEE\xEA\xE0 temp - \xEF\xF0\xE8\xEC\xE5\xF0 1 Error: Syntax error in SAVE statement at (1) check2.f90:5.8: temp = pm // pm //pm // pm ! \xE0\xE2\xF2\xEE\xEC\xE0\xF2\xE8\xF7\xE5\xF1\xEA\xEE\xE3\xEE \xEE\xE1\xFA\xE5\xEA xF2\xE0 \xE4\xE0\xED\xED\xFB\xF5 1 Error: Can't convert CHARACTER(1) to REAL(4) at (1) check2.f90:6.23: aufun = '# ' // trim(temp) // ' #' 1 Error: 'string' argument of 'trim' intrinsic at (1) must be CHARACTER