Introduce auto_string_vec class.
authorMartin Liska <mliska@suse.cz>
Thu, 28 Jun 2018 07:07:40 +0000 (09:07 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 28 Jun 2018 07:07:40 +0000 (07:07 +0000)
2018-06-28  Martin Liska  <mliska@suse.cz>

* vec.h (class auto_string_vec): New (moved from auto_argvec).
(auto_string_vec::~auto_string_vec): Likewise.
2018-06-28  Martin Liska  <mliska@suse.cz>

* jit-playback.c (class auto_argvec): Moved to vec.h.
(auto_argvec::~auto_argvec): Likewise.
(compile): Use the renamed name.
(invoke_driver): Likewise.

From-SVN: r262208

gcc/ChangeLog
gcc/jit/ChangeLog
gcc/jit/jit-playback.c
gcc/vec.h

index 91ccb225b315d6f937573e50a0eb7dbe9a4866e6..a5a6ace9d04c45c9dba3c0df7272d999032691a6 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-28  Martin Liska  <mliska@suse.cz>
+
+       * vec.h (class auto_string_vec): New (moved from auto_argvec).
+       (auto_string_vec::~auto_string_vec): Likewise.
+
 2018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-inline.c (remap_gimple_stmt): Force input_location on the new
index 6e279f7d057f007f800d1119fe43d0abdcb554fe..059cbb886bf357a0067ce276018b01b58472ecdf 100644 (file)
@@ -1,3 +1,10 @@
+2018-06-28  Martin Liska  <mliska@suse.cz>
+
+       * jit-playback.c (class auto_argvec): Moved to vec.h.
+       (auto_argvec::~auto_argvec): Likewise.
+       (compile): Use the renamed name.
+       (invoke_driver): Likewise.
+
 2018-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        PR jit/84288
index 258ebe8ef86f035a087875198ede880a394a6d86..01c4567de0571e4b322168aacd038199b5b9d53d 100644 (file)
@@ -1749,26 +1749,6 @@ block (function *func,
   m_label_expr = NULL;
 }
 
-/* A subclass of auto_vec <char *> that frees all of its elements on
-   deletion.  */
-
-class auto_argvec : public auto_vec <char *>
-{
- public:
-  ~auto_argvec ();
-};
-
-/* auto_argvec's dtor, freeing all contained strings, automatically
-   chaining up to ~auto_vec <char *>, which frees the internal buffer.  */
-
-auto_argvec::~auto_argvec ()
-{
-  int i;
-  char *str;
-  FOR_EACH_VEC_ELT (*this, i, str)
-    free (str);
-}
-
 /* Compile a playback::context:
 
    - Use the context's options to cconstruct command-line options, and
@@ -1822,7 +1802,7 @@ compile ()
   /* Acquire the JIT mutex and set "this" as the active playback ctxt.  */
   acquire_mutex ();
 
-  auto_argvec fake_args;
+  auto_string_vec fake_args;
   make_fake_args (&fake_args, ctxt_progname, &requested_dumps);
   if (errors_occurred ())
     {
@@ -2440,7 +2420,7 @@ invoke_driver (const char *ctxt_progname,
   /* Currently this lumps together both assembling and linking into
      TV_ASSEMBLE.  */
   auto_timevar assemble_timevar (get_timer (), tv_id);
-  auto_argvec argvec;
+  auto_string_vec argvec;
 #define ADD_ARG(arg) argvec.safe_push (xstrdup (arg))
 
   ADD_ARG (gcc_driver_name);
index a9f3bcf09ebcb956659b9e1574c4f76ed3b6f0ae..0af5187782e0b31c83e000d0409fd79f31fcbf00 100644 (file)
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -1462,6 +1462,15 @@ vec_alloc (vec<T> *&v, unsigned nelems CXX_MEM_STAT_INFO)
 }
 
 
+/* A subclass of auto_vec <char *> that frees all of its elements on
+   deletion.  */
+
+class auto_string_vec : public auto_vec <char *>
+{
+ public:
+  ~auto_string_vec ();
+};
+
 /* Conditionally allocate heap memory for VEC and its internal vector.  */
 
 template<typename T>
@@ -1554,6 +1563,18 @@ vec<T, va_heap, vl_ptr>::iterate (unsigned ix, T **ptr) const
        vec_safe_iterate ((V), (I), &(P));      \
        (I)--)
 
+/* auto_string_vec's dtor, freeing all contained strings, automatically
+   chaining up to ~auto_vec <char *>, which frees the internal buffer.  */
+
+inline
+auto_string_vec::~auto_string_vec ()
+{
+  int i;
+  char *str;
+  FOR_EACH_VEC_ELT (*this, i, str)
+    free (str);
+}
+
 
 /* Return a copy of this vector.  */