------- 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