diff options
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r-- | gcc/config/pa/pa.c | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index afcfd1a8d22..8b93aa9e5ad 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -469,21 +469,22 @@ pa_option_override (void) { unsigned int i; cl_deferred_option *opt; - VEC(cl_deferred_option,heap) *vec - = (VEC(cl_deferred_option,heap) *) pa_deferred_options; + vec<cl_deferred_option> *v + = (vec<cl_deferred_option> *) pa_deferred_options; - FOR_EACH_VEC_ELT (cl_deferred_option, vec, i, opt) - { - switch (opt->opt_index) - { - case OPT_mfixed_range_: - fix_range (opt->arg); - break; + if (v) + FOR_EACH_VEC_ELT (*v, i, opt) + { + switch (opt->opt_index) + { + case OPT_mfixed_range_: + fix_range (opt->arg); + break; - default: - gcc_unreachable (); - } - } + default: + gcc_unreachable (); + } + } /* Unconditional branches in the delay slot are not compatible with dwarf2 call frame information. There is no benefit in using this optimization @@ -4401,7 +4402,7 @@ hppa_pic_save_rtx (void) /* Vector of funcdef numbers. */ -static VEC(int,heap) *funcdef_nos; +static vec<int> funcdef_nos; /* Output deferred profile counters. */ static void @@ -4410,20 +4411,20 @@ output_deferred_profile_counters (void) unsigned int i; int align, n; - if (VEC_empty (int, funcdef_nos)) + if (funcdef_nos.is_empty ()) return; switch_to_section (data_section); align = MIN (BIGGEST_ALIGNMENT, LONG_TYPE_SIZE); ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT)); - for (i = 0; VEC_iterate (int, funcdef_nos, i, n); i++) + for (i = 0; funcdef_nos.iterate (i, &n); i++) { targetm.asm_out.internal_label (asm_out_file, "LP", n); assemble_integer (const0_rtx, LONG_TYPE_SIZE / BITS_PER_UNIT, align, 1); } - VEC_free (int, heap, funcdef_nos); + funcdef_nos.release (); } void @@ -4465,7 +4466,7 @@ hppa_profile_hook (int label_no) rtx count_label_rtx, addr, r24; char count_label_name[16]; - VEC_safe_push (int, heap, funcdef_nos, label_no); + funcdef_nos.safe_push (label_no); ASM_GENERATE_INTERNAL_LABEL (count_label_name, "LP", label_no); count_label_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (count_label_name)); @@ -9948,11 +9949,9 @@ typedef struct GTY(()) extern_symbol } extern_symbol; /* Define gc'd vector type for extern_symbol. */ -DEF_VEC_O(extern_symbol); -DEF_VEC_ALLOC_O(extern_symbol,gc); /* Vector of extern_symbol pointers. */ -static GTY(()) VEC(extern_symbol,gc) *extern_symbols; +static GTY(()) vec<extern_symbol, va_gc> *extern_symbols; #ifdef ASM_OUTPUT_EXTERNAL_REAL /* Mark DECL (name NAME) as an external reference (assembler output @@ -9964,7 +9963,7 @@ pa_hpux_asm_output_external (FILE *file, tree decl, const char *name) { gcc_assert (file == asm_out_file); extern_symbol p = {decl, name}; - VEC_safe_push (extern_symbol, gc, extern_symbols, p); + vec_safe_push (extern_symbols, p); } /* Output text required at the end of an assembler file. @@ -9982,7 +9981,7 @@ pa_hpux_file_end (void) output_deferred_plabels (); - for (i = 0; VEC_iterate (extern_symbol, extern_symbols, i, p); i++) + for (i = 0; vec_safe_iterate (extern_symbols, i, &p); i++) { tree decl = p->decl; @@ -9991,7 +9990,7 @@ pa_hpux_file_end (void) ASM_OUTPUT_EXTERNAL_REAL (asm_out_file, decl, p->name); } - VEC_free (extern_symbol, gc, extern_symbols); + vec_free (extern_symbols); } #endif |