This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
VEC re-write [patch 14/25]
- From: dnovillo at google dot com (Diego Novillo)
- To: echristo at gmail dot com, gcc-patches at gcc dot gnu dot org
- Date: Thu, 15 Nov 2012 16:53:59 -0500
- Subject: VEC re-write [patch 14/25]
2012-11-15 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
* config/darwin.c: Use new vec API in vec.h.
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index e56205b..6645270 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1791,10 +1791,8 @@ static unsigned int lto_section_num = 0;
typedef struct GTY (()) darwin_lto_section_e {
const char *sectname;
} darwin_lto_section_e ;
-DEF_VEC_O(darwin_lto_section_e);
-DEF_VEC_ALLOC_O(darwin_lto_section_e, gc);
-static GTY (()) VEC (darwin_lto_section_e, gc) * lto_section_names;
+static GTY (()) vec<darwin_lto_section_e, va_gc> *lto_section_names;
/* Segment for LTO data. */
#define LTO_SEGMENT_NAME "__GNU_LTO"
@@ -1877,8 +1875,8 @@ darwin_asm_named_section (const char *name,
TODO: check that we do not revisit sections, that would break
the assumption of how this is done. */
if (lto_section_names == NULL)
- lto_section_names = VEC_alloc (darwin_lto_section_e, gc, 16);
- VEC_safe_push (darwin_lto_section_e, gc, lto_section_names, e);
+ vec_alloc (lto_section_names, 16);
+ vec_safe_push (lto_section_names, e);
}
else if (strncmp (name, "__DWARF,", 8) == 0)
darwin_asm_dwarf_section (name, flags, decl);
@@ -2635,7 +2633,7 @@ darwin_assemble_visibility (tree decl, int vis)
"not supported in this configuration; ignored");
}
-/* VEC Used by darwin_asm_dwarf_section.
+/* vec used by darwin_asm_dwarf_section.
Maybe a hash tab would be better here - but the intention is that this is
a very short list (fewer than 16 items) and each entry should (ideally,
eventually) only be presented once.
@@ -2648,11 +2646,9 @@ typedef struct GTY(()) dwarf_sect_used_entry {
}
dwarf_sect_used_entry;
-DEF_VEC_O(dwarf_sect_used_entry);
-DEF_VEC_ALLOC_O(dwarf_sect_used_entry, gc);
/* A list of used __DWARF sections. */
-static GTY (()) VEC (dwarf_sect_used_entry, gc) * dwarf_sect_names_table;
+static GTY (()) vec<dwarf_sect_used_entry, va_gc> *dwarf_sect_names_table;
/* This is called when we are asked to assemble a named section and the
name begins with __DWARF,. We keep a list of the section names (without
@@ -2675,10 +2671,10 @@ darwin_asm_dwarf_section (const char *name, unsigned int flags,
namelen = strchr (sname, ',') - sname;
gcc_assert (namelen);
if (dwarf_sect_names_table == NULL)
- dwarf_sect_names_table = VEC_alloc (dwarf_sect_used_entry, gc, 16);
+ vec_alloc (dwarf_sect_names_table, 16);
else
for (i = 0;
- VEC_iterate (dwarf_sect_used_entry, dwarf_sect_names_table, i, ref);
+ dwarf_sect_names_table->iterate (i, &ref);
i++)
{
if (!ref)
@@ -2698,7 +2694,7 @@ darwin_asm_dwarf_section (const char *name, unsigned int flags,
fprintf (asm_out_file, "Lsection%.*s:\n", namelen, sname);
e.count = 1;
e.name = xstrdup (sname);
- VEC_safe_push (dwarf_sect_used_entry, gc, dwarf_sect_names_table, e);
+ vec_safe_push (dwarf_sect_names_table, e);
}
}
@@ -2813,7 +2809,7 @@ darwin_file_end (void)
}
/* Output the names and indices. */
- if (lto_section_names && VEC_length (darwin_lto_section_e, lto_section_names))
+ if (lto_section_names && lto_section_names->length ())
{
int count;
darwin_lto_section_e *ref;
@@ -2824,7 +2820,7 @@ darwin_file_end (void)
/* Emit the names. */
fprintf (asm_out_file, "\t.section %s,%s,regular,debug\n",
LTO_SEGMENT_NAME, LTO_NAMES_SECTION);
- FOR_EACH_VEC_ELT (darwin_lto_section_e, lto_section_names, count, ref)
+ FOR_EACH_VEC_ELT (*lto_section_names, count, ref)
{
fprintf (asm_out_file, "L_GNU_LTO_NAME%d:\n", count);
/* We have to jump through hoops to get the values of the intra-section
@@ -2847,7 +2843,7 @@ darwin_file_end (void)
fputs ("\t.align\t2\n", asm_out_file);
fputs ("# Section offset, Section length, Name offset, Name length\n",
asm_out_file);
- FOR_EACH_VEC_ELT (darwin_lto_section_e, lto_section_names, count, ref)
+ FOR_EACH_VEC_ELT (*lto_section_names, count, ref)
{
fprintf (asm_out_file, "%s L$gnu$lto$offs%d\t;# %s\n",
op, count, ref->sectname);
@@ -3338,7 +3334,7 @@ darwin_build_constant_cfstring (tree str)
if (!desc)
{
tree var, constructor, field;
- VEC(constructor_elt,gc) *v = NULL;
+ vec<constructor_elt, va_gc> *v = NULL;
int length = TREE_STRING_LENGTH (str) - 1;
if (darwin_warn_nonportable_cfstrings)