Example code: $ cat alloc.f90 INTEGER ERR,N PARAMETER (N=10) CHARACTER(LEN=40), POINTER :: vPTR(:) CHARACTER(LEN=40), ALLOCATABLE :: vALLOC(:) ALLOCATE(vPTR(N),STAT=ERR) ALLOCATE(vALLOC(N),STAT=ERR) vALLOC='A' vPTR=vALLOC ! Line cause compiler error WRITE(*,*) vPTR DEALLOCATE(vPTR,STAT=ERR) DEALLOCATE(vALLOC,STAT=ERR) END
When compiling it an internal compiler errors arises: $ /usr/local/bin/gfortran/irun/bin/gfortran -static -v --save-temps alloc.f90 Driving: /usr/local/bin/gfortran/irun/bin/gfortran -static -v -save-temps alloc.f90 -lgfortranbegin -lgfortran -lm Reading specs from /usr/local/bin/gfortran/irun/bin/../lib/gcc/i686-pc-linux-gnu/4.0.0/specs Configured with: ../gcc/configure --enable-languages=c,f95 --prefix=/usr/work/2004343/irun Thread model: posix gcc version 4.0.0 20041208 (experimental) /usr/local/bin/gfortran/irun/bin/../libexec/gcc/i686-pc-linux-gnu/4.0.0/f951 alloc.f90 -quiet -dumpbase alloc.f90 -mtune=pentiumpro -auxbase alloc -version -o alloc.s GNU F95 version 4.0.0 20041208 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.0.0 20041202 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 alloc.f90: In function 'MAIN__': alloc.f90:11: internal compiler error: in gfc_trans_scalar_assign, at fortran/trans-expr.c:2005 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. ICE appears with CHARACTER type, REAL or INTEGER seems ok. ICE appears only with POINTER to POINTER or mixed POINTER to/from ALLOCATABLE arrays assigning, ALLOCATABLE to ALLOCATABLE have works. -- Summary: ICE at assign CHARACTER POINTER array to POINTER or ALLOCATABLE one Product: gcc Version: tree-ssa Status: UNCONFIRMED Severity: normal Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: naf at naf dot net dot ru CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18890