- size_t i, n, j, m;
-
- for (i = 0, n = get_class_n_members(tp); i < n; ++i) {
- ir_entity *mem = get_class_member(tp, i);
-
- ASSERT_AND_RET_DBG(
- tp == get_entity_owner(mem),
- "class member with wrong owner",
- error_ent_wrong_owner,
- ir_fprintf(stderr, "Type verification error:\n%+F %+e(owner %+F)\n",tp, mem, get_entity_owner(mem))
- );
- ASSERT_AND_RET_DBG(
- mem,
- "NULL members not allowed",
- error_null_mem,
- ir_fprintf(stderr, "Type verification error:\n%+F member %zu is NULL\n", tp, i)
- );
-
- ASSERT_AND_RET_DBG(
- get_entity_n_overwrites(mem) <= get_class_n_supertypes(tp),
- "wrong number of entity overwrites",
- error_wrong_ent_overwrites,
- show_ent_overwrite_cnt(mem)
- );
-
- for (j = 0, m = get_entity_n_overwrites(mem); j < m; ++j) {
- ir_entity *ovw = get_entity_overwrites(mem, j);
- size_t k, n_super;
-
- /* Check whether ovw is member of one of tp's supertypes. If so,
- the representation is correct. */
- for (k = 0, n_super = get_class_n_supertypes(tp); k < n_super; ++k) {
- if (get_class_member_index(get_class_supertype(tp, k), ovw) != INVALID_MEMBER_INDEX) {
- ASSERT_AND_RET_DBG(
- 0,
- "overwrites an entity not contained in direct supertype",
- error_ent_not_cont,
- show_ent_not_supertp(mem, ovw)
- );
- break;
- }
- }
+ bool fine = true;
+ size_t n_dim = get_array_n_dimensions(tp);
+ size_t i;
+
+ for (i = 0; i < n_dim; ++i) {
+ if (!has_array_lower_bound(tp, i) && !has_array_upper_bound(tp, i)) {
+ report_error("missing array bound in %+F in dimension %zu", tp, i);
+ fine = false;