------- Comment #1 from Eric dot Zurcher at csiro dot au 2010-08-10 02:16 ------- The FORTRAN code given below causes gfortran to fail with the message: f951.exe: internal compiler error: Segmentation fault
I have tested this using the Mingw32 version of gfortran 4.5.0, and version 4.3.2 on SUSE Linux. The code does contain a known error: the argument "variable" should be passed as an array of strings, not as just the first string in the array. However, this incorrect code should not cause the compiler to segmentation fault. Module BugDemo integer M parameter (M=100) Type aRecord SEQUENCE character soil_type(0:M)*20 End Type aRecord Type (aRecord),Pointer :: p contains ! ==================================================================== subroutine read_char_array . (section_name, variable_name, size_of, . units, variable, numvals) ! ==================================================================== implicit none !+ Sub-Program Arguments character section_name*(*) ! (INPUT) section name to search for character variable_name*(*) ! (INPUT) Variable name to search for integer size_of ! (INPUT) size_of of array character units*(*) ! (INPUT) Units required by caller character variable(*)*(*) ! (OUTPUT) Variable returned to caller integer numvals ! (OUTPUT) Number of values returned logical found !- Implementation Section ---------------------------------- found = .TRUE. return end subroutine subroutine dotest !Use ReadModule Implicit None integer numvals allocate(p) call Read_char_array ( : 'init', : 'soil_type', : M+1, : '(?)', : p%soil_type(0), ! THIS IS WRONG : numvals) deallocate(p) return end subroutine end module BugDemo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45244