[gdb/testsuite] Fix regexp in skip_opencl_tests
[external/binutils.git] / gdb / namespace.c
index fdbe51b..62c7214 100644 (file)
@@ -1,5 +1,5 @@
 /* Code dealing with "using" directives for GDB.
-   Copyright (C) 2003-2015 Free Software Foundation, Inc.
+   Copyright (C) 2003-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,19 +39,19 @@ add_using_directive (struct using_direct **using_directives,
                     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)
 {
   struct using_direct *current;
   struct using_direct *newobj;
+  int alloc_len;
 
   /* Has it already been added?  */
 
   for (current = *using_directives; current != NULL; current = current->next)
     {
       int ix;
-      const char *param;
 
       if (strcmp (current->import_src, src) != 0)
        continue;
@@ -69,27 +69,28 @@ add_using_directive (struct using_direct **using_directives,
        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.  */
       return;
     }
 
-  newobj = obstack_alloc (obstack, (sizeof (*newobj)
-                                + (VEC_length (const_char_ptr, excludes)
-                                   * sizeof (*newobj->excludes))));
+  alloc_len = (sizeof(*newobj)
+              + (excludes.size () * sizeof(*newobj->excludes)));
+  newobj = (struct using_direct *) obstack_alloc (obstack, alloc_len);
   memset (newobj, 0, sizeof (*newobj));
 
   if (copy_names)
     {
-      newobj->import_src = obstack_copy0 (obstack, src, strlen (src));
-      newobj->import_dest = obstack_copy0 (obstack, dest, strlen (dest));
+      newobj->import_src
+       = (const char *) obstack_copy0 (obstack, src, strlen (src));
+      newobj->import_dest
+       = (const char *) obstack_copy0 (obstack, dest, strlen (dest));
     }
   else
     {
@@ -98,19 +99,22 @@ add_using_directive (struct using_direct **using_directives,
     }
 
   if (alias != NULL && copy_names)
-    newobj->alias = obstack_copy0 (obstack, alias, strlen (alias));
+    newobj->alias
+      = (const char *) obstack_copy0 (obstack, alias, strlen (alias));
   else
     newobj->alias = alias;
 
   if (declaration != NULL && copy_names)
-    newobj->declaration = obstack_copy0 (obstack,
-                                     declaration, strlen (declaration));
+    newobj->declaration
+      = (const char *) obstack_copy0 (obstack, declaration,
+                                     strlen (declaration));
   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;
+  if (!excludes.empty ())
+    memcpy (newobj->excludes, excludes.data (),
+           excludes.size () * sizeof (*newobj->excludes));
+  newobj->excludes[excludes.size ()] = NULL;
 
   newobj->next = *using_directives;
   *using_directives = newobj;