]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/expr.c
This patch rewrites the old VEC macro-based interface into a new one
[thirdparty/gcc.git] / gcc / expr.c
index b1b83d0e1df7f558fce8a7dd8ddc17bba0a669f6..d1da390e2827ddc79e0fff33c55d58d8b51b73be 100644 (file)
@@ -5779,7 +5779,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
           register whose mode size isn't equal to SIZE since
           clear_storage can't handle this case.  */
        else if (size > 0
-                && (((int)VEC_length (constructor_elt, CONSTRUCTOR_ELTS (exp))
+                && (((int)vec_safe_length (CONSTRUCTOR_ELTS (exp))
                      != fields_length (type))
                     || mostly_zeros_p (exp))
                 && (!REG_P (target)
@@ -6241,7 +6241,7 @@ store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
         /* Store each element of the constructor into the corresponding
           element of TARGET, determined by counting the elements.  */
        for (idx = 0, i = 0;
-            VEC_iterate (constructor_elt, CONSTRUCTOR_ELTS (exp), idx, ce);
+            vec_safe_iterate (CONSTRUCTOR_ELTS (exp), idx, &ce);
             idx++, i += bitsize / elt_size)
          {
            HOST_WIDE_INT eltpos;
@@ -7131,7 +7131,7 @@ safe_from_p (const_rtx x, tree exp, int top_p)
          constructor_elt *ce;
          unsigned HOST_WIDE_INT idx;
 
-         FOR_EACH_VEC_ELT (constructor_elt, CONSTRUCTOR_ELTS (exp), idx, ce)
+         FOR_EACH_VEC_SAFE_ELT (CONSTRUCTOR_ELTS (exp), idx, ce)
            if ((ce->index != NULL_TREE && !safe_from_p (x, ce->index, 0))
                || !safe_from_p (x, ce->value, 0))
              return 0;
@@ -9325,9 +9325,9 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
          }
        if (!tmp)
          {
-           VEC(constructor_elt,gc) *v;
+           vec<constructor_elt, va_gc> *v;
            unsigned i;
-           v = VEC_alloc (constructor_elt, gc, VECTOR_CST_NELTS (exp));
+           vec_alloc (v, VECTOR_CST_NELTS (exp));
            for (i = 0; i < VECTOR_CST_NELTS (exp); ++i)
              CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, VECTOR_CST_ELT (exp, i));
            tmp = build_constructor (type, v);