Disable gcc_rich_location copying and assignment.
gcc/cp/ChangeLog: * parser.c (cp_parser_selection_statement): Use direct initialization instead of copy. gcc/ChangeLog: * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. libcpp/ChangeLog: * include/line-map.h (class rich_location): Disable copying and assignment.
This commit is contained in:
parent
e45d5b6bf1
commit
e4d2305adf
3 changed files with 12 additions and 4 deletions
|
@ -12848,7 +12848,7 @@ cp_parser_selection_statement (cp_parser* parser, bool *if_p,
|
|||
IF_STMT_CONSTEVAL_P (statement) = true;
|
||||
condition = finish_if_stmt_cond (boolean_false_node, statement);
|
||||
|
||||
gcc_rich_location richloc = tok->location;
|
||||
gcc_rich_location richloc (tok->location);
|
||||
bool non_compound_stmt_p = false;
|
||||
if (cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_BRACE))
|
||||
{
|
||||
|
@ -12876,7 +12876,7 @@ cp_parser_selection_statement (cp_parser* parser, bool *if_p,
|
|||
RID_ELSE))
|
||||
{
|
||||
cp_token *else_tok = cp_lexer_peek_token (parser->lexer);
|
||||
gcc_rich_location else_richloc = else_tok->location;
|
||||
gcc_rich_location else_richloc (else_tok->location);
|
||||
guard_tinfo = get_token_indent_info (else_tok);
|
||||
/* Consume the `else' keyword. */
|
||||
cp_lexer_consume_token (parser->lexer);
|
||||
|
|
|
@ -21,14 +21,16 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define GCC_RICH_LOCATION_H
|
||||
|
||||
/* A gcc_rich_location is libcpp's rich_location with additional
|
||||
helper methods for working with gcc's types. */
|
||||
helper methods for working with gcc's types. The class is not
|
||||
copyable or assignable because rich_location isn't. */
|
||||
|
||||
class gcc_rich_location : public rich_location
|
||||
{
|
||||
public:
|
||||
/* Constructors. */
|
||||
|
||||
/* Constructing from a location. */
|
||||
gcc_rich_location (location_t loc, const range_label *label = NULL)
|
||||
explicit gcc_rich_location (location_t loc, const range_label *label = NULL)
|
||||
: rich_location (line_table, loc, label)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1670,6 +1670,12 @@ class rich_location
|
|||
/* Destructor. */
|
||||
~rich_location ();
|
||||
|
||||
/* The class manages the memory pointed to by the elements of
|
||||
the M_FIXIT_HINTS vector and is not meant to be copied or
|
||||
assigned. */
|
||||
rich_location (const rich_location &) = delete;
|
||||
void operator= (const rich_location &) = delete;
|
||||
|
||||
/* Accessors. */
|
||||
location_t get_loc () const { return get_loc (0); }
|
||||
location_t get_loc (unsigned int idx) const;
|
||||
|
|
Loading…
Add table
Reference in a new issue