https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92753
--- Comment #6 from anlauf at gcc dot gnu.org --- Using the LEN() intrinsic works fine, as the dump-tree shows for implicit none type t character :: c = "a" end type t type(t), parameter :: x = t() integer, parameter :: l = x%c%len ! error and m=0 ! integer, parameter :: l = len(x%c) ! no error, m=1 integer :: m = l print *, m end Also the following compiles/works fine: implicit none type t character :: c = "a" end type t type(t), parameter :: x = t() character(*), parameter :: d = x% c integer, parameter :: l = d% len integer :: m = l print *, m end