diff options
author | Martin Sebor <msebor@redhat.com> | 2021-08-31 11:15:21 -0600 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2021-08-31 11:15:21 -0600 |
commit | e4d2305adf4e9d11e396c1c5e5ae6214340cbcc2 (patch) | |
tree | 3a10a3da027bbc6875b65d69769465063591a1bc /gcc | |
parent | e45d5b6bf1bcf9fd16c3ecfadb9bde69f890b28d (diff) | |
download | gcc-e4d2305adf4e9d11e396c1c5e5ae6214340cbcc2.zip gcc-e4d2305adf4e9d11e396c1c5e5ae6214340cbcc2.tar.gz gcc-e4d2305adf4e9d11e396c1c5e5ae6214340cbcc2.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/parser.c | 4 | ||||
-rw-r--r-- | gcc/gcc-rich-location.h | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 7dc4eae..1e2a4b1 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -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); diff --git a/gcc/gcc-rich-location.h b/gcc/gcc-rich-location.h index 0074763..2a9e5db 100644 --- a/gcc/gcc-rich-location.h +++ b/gcc/gcc-rich-location.h @@ -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) { } |