aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-05-15 20:57:56 -0400
committerJason Merrill <jason@gcc.gnu.org>2018-05-15 20:57:56 -0400
commite4a148963e82ff2f34c794de0ad7ad3fa2e7b123 (patch)
tree25dd28c9e1a3600da7dd25c59c2d156d5c41c531
parent67ea8181df4e9e65e6b47c5c2950117922db8ecf (diff)
downloadgcc-e4a148963e82ff2f34c794de0ad7ad3fa2e7b123.zip
gcc-e4a148963e82ff2f34c794de0ad7ad3fa2e7b123.tar.gz
gcc-e4a148963e82ff2f34c794de0ad7ad3fa2e7b123.tar.bz2
cp-tree.h (cp_expr): Remove copy constructor.
* cp-tree.h (cp_expr): Remove copy constructor. * mangle.c (struct releasing_vec): Declare copy constructor. From-SVN: r260279
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/cp-tree.h3
-rw-r--r--gcc/cp/mangle.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 912a96c..3ccaebe 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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 ?:
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 9a2eb3b..cab9260 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -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; }
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 6a7df80..59a3111 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -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; }