https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69739
--- Comment #5 from Harald Anlauf <anlauf at gmx dot de> --- You probably hit something that's just not yet implemented: trans-expr.c: (gdb) list 4083,4096 4083 case GFC_ISYM_LBOUND: 4084 case GFC_ISYM_UBOUND: 4085 /* TODO These implementations of lbound and ubound do not limit if 4086 the size < 0, according to F95's 13.14.53 and 13.14.113. */ 4087 4088 if (!sym->as || sym->as->rank == 0) 4089 return false; 4090 4091 if (arg2 && arg2->expr_type == EXPR_CONSTANT) 4092 d = mpz_get_si (arg2->value.integer) - 1; 4093 else 4094 /* TODO: If the need arises, this could produce an array of 4095 ubound/lbounds. */ 4096 gcc_unreachable ();