-static const size_t element_size[NUM_VARRAY_DATA] = {
- sizeof (char),
- sizeof (unsigned char),
- sizeof (short),
- sizeof (unsigned short),
- sizeof (int),
- sizeof (unsigned int),
- sizeof (long),
- sizeof (unsigned long),
- sizeof (HOST_WIDE_INT),
- sizeof (unsigned HOST_WIDE_INT),
- sizeof (PTR),
- sizeof (char *),
- sizeof (struct rtx_def *),
- sizeof (struct rtvec_def *),
- sizeof (union tree_node *),
- sizeof (struct bitmap_head_def *),
- sizeof (struct reg_info_def *),
- sizeof (struct const_equiv_data),
- sizeof (struct basic_block_def *),
- sizeof (struct elt_list *)
-};
-
-static const int uses_ggc[NUM_VARRAY_DATA] = {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* unsigned HOST_WIDE_INT */
- 1, /* PTR */
- 1, 1, 1, 1, 1, /* bitmap_head_def */
- 0, 0, 0, 1
+/* Do not add any more non-GC items here. Please either remove or GC those items that
+ are not GCed. */
+
+static const struct {
+ unsigned char size;
+ bool uses_ggc;
+} element[NUM_VARRAY_DATA] = {
+ { sizeof (char), 1 },
+ { sizeof (unsigned char), 1 },
+ { sizeof (short), 1 },
+ { sizeof (unsigned short), 1 },
+ { sizeof (int), 1 },
+ { sizeof (unsigned int), 1 },
+ { sizeof (long), 1 },
+ { sizeof (unsigned long), 1 },
+ { sizeof (HOST_WIDE_INT), 1 },
+ { sizeof (unsigned HOST_WIDE_INT), 1 },
+ { sizeof (PTR), 1 },
+ { sizeof (char *), 1 },
+ { sizeof (struct rtx_def *), 1 },
+ { sizeof (struct rtvec_def *), 1 },
+ { sizeof (union tree_node *), 1 },
+ { sizeof (struct bitmap_head_def *), 1 },
+ { sizeof (struct reg_info_def *), 0 },
+ { sizeof (struct const_equiv_data), 0 },
+ { sizeof (struct basic_block_def *), 0 },
+ { sizeof (struct elt_list *), 1 },