https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114019
Bug ID: 114019 Summary: allocation with source of deferred character length entity Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: kargl at gcc dot gnu.org Target Milestone: --- Found this issues with the Fujitsu testsuite. The code is reduced to the minimum required. If I had to guess, gfc_charlen for source= is not set correctly. ! ! https://github.com/fujitsu/compiler-test-suite ! Reduced from Fortran/0069/0069_0037.f90 ! implicit none character(:), pointer :: chr_pointer00 character(5), pointer :: chr_pointer01 character(1) :: w_character01 = "4" allocate(chr_pointer00, source="123"//w_character01//"56") allocate(chr_pointer01, source="123"//w_character01//"5") print *,'pass' end % gfcx -c 0069/0069_0037.f90 0069/0069_0037.f90:9:60: 9 | allocate(chr_pointer00, source="123"//w_character01//"56") | ^ Error: size of variable 'source.2' is too large 0069/0069_0037.f90:10:59: 10 | allocate(chr_pointer01, source="123"//w_character01//"5") | ^ Error: size of variable 'source.5' is too large during RTL pass: expand 0069/0069_0037.f90:9:60: 9 | allocate(chr_pointer00, source="123"//w_character01//"56") | ^ internal compiler error: in lhd_incomplete_type_error, at langhooks.cc:208 0x77ff6f lhd_incomplete_type_error(unsigned int, tree_node const*, tree_node const ../../gccx/gcc/langhooks.cc:208 0x13c00aa size_in_bytes_loc(unsigned int, tree_node const*) ../../gccx/gcc/tree.cc:3601 0x13c00aa size_in_bytes_loc(unsigned int, tree_node const*) ../../gccx/gcc/tree.cc:3589