libcc1: delete copy constructor and assignment operators

Change libcc1 to use "= delete" for the copy constructor and
assignment operator, rather than the old approach of private methods
that are nowhere defined.

libcc1

	* rpc.hh (argument_wrapper): Use delete for copy constructor.
	* connection.hh (class connection): Use delete for copy
	constructor.
	* callbacks.hh (class callbacks): Use delete for copy constructor.
This commit is contained in:
Tom Tromey 2021-05-04 15:26:58 -06:00
parent 41f4381648
commit c10a3b13fe
3 changed files with 24 additions and 32 deletions

View file

@ -42,6 +42,9 @@ namespace cc1_plugin
callbacks (); callbacks ();
~callbacks (); ~callbacks ();
callbacks (const callbacks &) = delete;
callbacks &operator= (const callbacks &) = delete;
// Add a callback named NAME. FUNC is the function to call when // Add a callback named NAME. FUNC is the function to call when
// this method is invoked. // this method is invoked.
void add_callback (const char *name, callback_ftype *func); void add_callback (const char *name, callback_ftype *func);
@ -52,10 +55,6 @@ namespace cc1_plugin
private: private:
// Declared but not defined to avoid use.
callbacks (const callbacks &);
callbacks &operator= (const callbacks &);
// The mapping. // The mapping.
htab_t m_registry; htab_t m_registry;
}; };

View file

@ -48,6 +48,9 @@ namespace cc1_plugin
virtual ~connection () = default; virtual ~connection () = default;
connection (const connection &) = delete;
connection &operator= (const connection &) = delete;
// Send a single character. This is used to introduce various // Send a single character. This is used to introduce various
// higher-level protocol elements. // higher-level protocol elements.
status send (char c); status send (char c);
@ -95,10 +98,6 @@ namespace cc1_plugin
private: private:
// Declared but not defined, to prevent use.
connection (const connection &);
connection &operator= (const connection &);
// Helper function for the wait_* methods. // Helper function for the wait_* methods.
status do_wait (bool); status do_wait (bool);

View file

@ -39,6 +39,9 @@ namespace cc1_plugin
argument_wrapper () { } argument_wrapper () { }
~argument_wrapper () { } ~argument_wrapper () { }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator T () const { return m_object; } operator T () const { return m_object; }
status unmarshall (connection *conn) status unmarshall (connection *conn)
@ -49,10 +52,6 @@ namespace cc1_plugin
private: private:
T m_object; T m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
// Specialization for any kind of pointer. This is declared but not // Specialization for any kind of pointer. This is declared but not
@ -72,6 +71,9 @@ namespace cc1_plugin
delete[] m_object; delete[] m_object;
} }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator const char * () const operator const char * () const
{ {
return m_object; return m_object;
@ -85,10 +87,6 @@ namespace cc1_plugin
private: private:
char *m_object; char *m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
// Specialization for gcc_type_array. // Specialization for gcc_type_array.
@ -106,6 +104,9 @@ namespace cc1_plugin
delete m_object; delete m_object;
} }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator const gcc_type_array * () const operator const gcc_type_array * () const
{ {
return m_object; return m_object;
@ -119,10 +120,6 @@ namespace cc1_plugin
private: private:
gcc_type_array *m_object; gcc_type_array *m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
#ifdef GCC_CP_INTERFACE_H #ifdef GCC_CP_INTERFACE_H
@ -144,6 +141,9 @@ namespace cc1_plugin
delete m_object; delete m_object;
} }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator const gcc_vbase_array * () const operator const gcc_vbase_array * () const
{ {
return m_object; return m_object;
@ -157,10 +157,6 @@ namespace cc1_plugin
private: private:
gcc_vbase_array *m_object; gcc_vbase_array *m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
// Specialization for gcc_cp_template_args. // Specialization for gcc_cp_template_args.
@ -181,6 +177,9 @@ namespace cc1_plugin
delete m_object; delete m_object;
} }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator const gcc_cp_template_args * () const operator const gcc_cp_template_args * () const
{ {
return m_object; return m_object;
@ -194,10 +193,6 @@ namespace cc1_plugin
private: private:
gcc_cp_template_args *m_object; gcc_cp_template_args *m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
// Specialization for gcc_cp_function_args. // Specialization for gcc_cp_function_args.
@ -217,6 +212,9 @@ namespace cc1_plugin
delete m_object; delete m_object;
} }
argument_wrapper (const argument_wrapper &) = delete;
argument_wrapper &operator= (const argument_wrapper &) = delete;
operator const gcc_cp_function_args * () const operator const gcc_cp_function_args * () const
{ {
return m_object; return m_object;
@ -230,10 +228,6 @@ namespace cc1_plugin
private: private:
gcc_cp_function_args *m_object; gcc_cp_function_args *m_object;
// No copying or assignment allowed.
argument_wrapper (const argument_wrapper &);
argument_wrapper &operator= (const argument_wrapper &);
}; };
#endif /* GCC_CP_INTERFACE_H */ #endif /* GCC_CP_INTERFACE_H */