------- Comment #5 from burnus at gcc dot gnu dot org 2008-06-13 20:25 ------- > First program, causes an ICE.
Valgrind shows that it fails in decl.c's build_struct: if (c->ts.type == BT_CHARACTER && !c->pointer && c->initializer) { int len = mpz_get_si (c->ts.cl->length->value.integer); As c->ts.cl->length->value is probably a NULL pointer. Thus for some reason there is no check whether the length is a specification expression - or actually in this case it needs to be even an initialization expression. Possible starting point for investigations: char_len_param_value -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36492