http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55501
--- Comment #4 from janus at gcc dot gnu.org 2012-11-28 10:10:40 UTC --- For a case like this: module test integer :: MPI_INTEGER = merge(4, 8, .false.) end module we do not get an EXPR_FUNCTION in gfc_conv_initializer, but it is simplified to EXPR_CONSTANT before. It seems that this does not work for derived types.