cp-tree.h (cp_expr): Remove copy constructor.
authorJason Merrill <jason@redhat.com>
Wed, 16 May 2018 00:57:56 +0000 (20:57 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 16 May 2018 00:57:56 +0000 (20:57 -0400)
* cp-tree.h (cp_expr): Remove copy constructor.

* mangle.c (struct releasing_vec): Declare copy constructor.

From-SVN: r260279

gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/mangle.c

index 912a96c..3ccaebe 100644 (file)
@@ -1,5 +1,8 @@
 2018-05-15  Jason Merrill  <jason@redhat.com>
 
+       * cp-tree.h (cp_expr): Remove copy constructor.
+       * mangle.c (struct releasing_vec): Declare copy constructor.
+
        * constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet.
 
        PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?:
index 9a2eb3b..cab9260 100644 (file)
@@ -59,9 +59,6 @@ public:
   cp_expr (tree value, location_t loc):
     m_value (value), m_loc (loc) {}
 
-  cp_expr (const cp_expr &other) :
-    m_value (other.m_value), m_loc (other.m_loc) {}
-
   /* Implicit conversions to tree.  */
   operator tree () const { return m_value; }
   tree & operator* () { return m_value; }
index 6a7df80..59a3111 100644 (file)
@@ -1555,6 +1555,10 @@ struct releasing_vec
   releasing_vec (vec_t *v): v(v) { }
   releasing_vec (): v(make_tree_vector ()) { }
 
+  /* Copy constructor is deliberately declared but not defined,
+     copies must always be elided.  */
+  releasing_vec (const releasing_vec &);
+
   vec_t &operator* () const { return *v; }
   vec_t *operator-> () const { return v; }
   vec_t *get () const { return v; }