> + if (!host_integerp (DECL_FIELD_OFFSET (fld), 1)) > + { > + *msg = "structure field offset not host integer"; /* ??? */ > + return true; > + }
Offsets can be variable, like sizes, in Ada for example. > if (TYPE_VOLATILE (et)) > - return true; > + { > + *msg = "array type is volatile"; > + return true; > + } "element type is volatile" > + if (!COMPLETE_TYPE_P (type)) > + { > + reject (var, "is not complete"); > + continue; > + } "has incomplete type" is better I think > + if (!host_integerp (TYPE_SIZE (type), 1)) > + { > + reject (var, "not host integer"); > + continue; > + } missing "type size" > + if (tree_low_cst (TYPE_SIZE (type), 1) == 0) > + { > + reject (var, "tree_low_cst is zero"); /* what is that? */ > + continue; > + } This is equivalent to saying that the type size is zero. -- Eric Botcazou