+2017-09-09 Tom Tromey <tom@tromey.com>
+
+ * namespace.h (add_using_directive): Update.
+ * namespace.c (add_using_directive): Change type of excludes to
+ std::vector.
+ * dwarf2read.c (read_import_statement): Use std::vector.
+ (read_namespace): Update.
+ * cp-namespace.c (cp_scan_for_anonymous_namespaces): Update.
+
2017-09-09 Tom Tromey <tom@tromey.com>
* linespec.c (create_sals_line_offset): Use gdb::def_vector.
anonymous namespace. So add symbols in it to the
namespace given by the previous component if there is
one, or to the global namespace if there isn't. */
+ std::vector<const char *> excludes;
add_using_directive (&local_using_directives,
- dest, src, NULL, NULL, NULL, 1,
+ dest, src, NULL, NULL, excludes, 1,
&objfile->objfile_obstack);
}
/* The "+ 2" is for the "::". */
const char *import_alias;
const char *imported_declaration = NULL;
const char *import_prefix;
- VEC (const_char_ptr) *excludes = NULL;
- struct cleanup *cleanups;
+ std::vector<const char *> excludes;
import_attr = dwarf2_attr (die, DW_AT_import, cu);
if (import_attr == NULL)
else
canonical_name = imported_name;
- cleanups = make_cleanup (VEC_cleanup (const_char_ptr), &excludes);
-
if (die->tag == DW_TAG_imported_module && cu->language == language_fortran)
for (child_die = die->child; child_die && child_die->tag;
child_die = sibling_die (child_die))
continue;
}
- VEC_safe_push (const_char_ptr, excludes, imported_name);
+ excludes.push_back (imported_name);
process_die (child_die, cu);
}
excludes,
0,
&objfile->objfile_obstack);
-
- do_cleanups (cleanups);
}
/* Check for possibly missing DW_AT_comp_dir with relative .debug_line
{
const char *previous_prefix = determine_prefix (die, cu);
+ std::vector<const char *> excludes;
add_using_directive (using_directives (cu->language),
previous_prefix, TYPE_NAME (type), NULL,
- NULL, NULL, 0, &objfile->objfile_obstack);
+ NULL, excludes, 0, &objfile->objfile_obstack);
}
}
const char *src,
const char *alias,
const char *declaration,
- VEC (const_char_ptr) *excludes,
+ const std::vector<const char *> &excludes,
int copy_names,
struct obstack *obstack)
{
for (current = *using_directives; current != NULL; current = current->next)
{
int ix;
- const char *param;
if (strcmp (current->import_src, src) != 0)
continue;
continue;
/* Compare the contents of EXCLUDES. */
- for (ix = 0; VEC_iterate (const_char_ptr, excludes, ix, param); ix++)
+ for (ix = 0; ix < excludes.size (); ++ix)
if (current->excludes[ix] == NULL
- || strcmp (param, current->excludes[ix]) != 0)
+ || strcmp (excludes[ix], current->excludes[ix]) != 0)
break;
- if (ix < VEC_length (const_char_ptr, excludes)
- || current->excludes[ix] != NULL)
+ if (ix < excludes.size () || current->excludes[ix] != NULL)
continue;
/* Parameters exactly match CURRENT. */
}
alloc_len = (sizeof(*newobj)
- + (VEC_length (const_char_ptr, excludes)
- * sizeof(*newobj->excludes)));
+ + (excludes.size () * sizeof(*newobj->excludes)));
newobj = (struct using_direct *) obstack_alloc (obstack, alloc_len);
memset (newobj, 0, sizeof (*newobj));
else
newobj->declaration = declaration;
- memcpy (newobj->excludes, VEC_address (const_char_ptr, excludes),
- VEC_length (const_char_ptr, excludes) * sizeof (*newobj->excludes));
- newobj->excludes[VEC_length (const_char_ptr, excludes)] = NULL;
+ memcpy (newobj->excludes, excludes.data (),
+ excludes.size () * sizeof (*newobj->excludes));
+ newobj->excludes[excludes.size ()] = NULL;
newobj->next = *using_directives;
*using_directives = newobj;
const char *src,
const char *alias,
const char *declaration,
- VEC (const_char_ptr) *excludes,
+ const std::vector<const char *> &excludes,
int copy_names,
struct obstack *obstack);