aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/pa/pa.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index ad6594f..3e92a16 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -9022,18 +9022,18 @@ pa_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
at the end of the file if and only if SYMBOL_REF_REFERENCED_P is true.
This avoids putting out names that are never really used. */
-struct extern_symbol GTY(())
+typedef struct extern_symbol GTY(())
{
tree decl;
const char *name;
-};
-typedef struct extern_symbol *extern_symbol;
+} extern_symbol;
/* Define gc'd vector type for extern_symbol. */
-DEF_VEC_GC_P(extern_symbol);
+DEF_VEC_O(extern_symbol);
+DEF_VEC_ALLOC_O(extern_symbol,gc);
/* Vector of extern_symbol pointers. */
-static GTY(()) VEC(extern_symbol) *extern_symbols;
+static GTY(()) VEC(extern_symbol,gc) *extern_symbols;
#ifdef ASM_OUTPUT_EXTERNAL_REAL
/* Mark DECL (name NAME) as an external reference (assembler output
@@ -9043,12 +9043,11 @@ static GTY(()) VEC(extern_symbol) *extern_symbols;
void
pa_hpux_asm_output_external (FILE *file, tree decl, const char *name)
{
- extern_symbol p = ggc_alloc (sizeof (struct extern_symbol));
+ extern_symbol * p = VEC_safe_push (extern_symbol, gc, extern_symbols, NULL);
gcc_assert (file == asm_out_file);
p->decl = decl;
p->name = name;
- VEC_safe_push (extern_symbol, extern_symbols, p);
}
/* Output text required at the end of an assembler file.
@@ -9059,7 +9058,7 @@ static void
pa_hpux_file_end (void)
{
unsigned int i;
- extern_symbol p;
+ extern_symbol *p;
output_deferred_plabels ();
@@ -9072,7 +9071,7 @@ pa_hpux_file_end (void)
ASM_OUTPUT_EXTERNAL_REAL (asm_out_file, decl, p->name);
}
- extern_symbols = NULL;
+ VEC_free (extern_symbol, gc, extern_symbols);
}
#endif