aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/parser.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-07-25 18:46:34 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-07-25 18:46:34 +0200
commit213f5e8accc3e6dad179eafd48c920e524b56be2 (patch)
treefaf01b02efb3ee21176b6e67d3126676e4e778ce /gcc/cp/parser.c
parentc44fa4a6660c4d81891093578d5e9463d6d85b73 (diff)
downloadgcc-213f5e8accc3e6dad179eafd48c920e524b56be2.zip
gcc-213f5e8accc3e6dad179eafd48c920e524b56be2.tar.gz
gcc-213f5e8accc3e6dad179eafd48c920e524b56be2.tar.bz2
re PR c++/85515 (Bogus suggestions from "GCC's leaky abstractions")
PR c++/85515 * cp-tree.h (enum cp_tree_index): Add CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER. (for_range__identifier, for_begin__identifier, for_end__identifier, for_range_identifier, for_begin_identifier, for_end_identifier): Define. * decl.c (initialize_predefined_identifiers): Initialize for_{range,begin,end}{,_}_identifier. * parser.c (build_range_temp): Use for_range__identifier instead of get_identifier ("__for_range"). (cp_convert_range_for): Use for_begin__identifier and for_end__identifier instead of get_identifier ("__for_begin") and get_identifier ("__for_end"). * semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} " local symbols to "__for_{range,begin,end}". * g++.dg/pr85515-2.C: Add expected dg-error. * g++.dg/cpp0x/range-for36.C: New test. From-SVN: r262975
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r--gcc/cp/parser.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 90d5d00..3344ef3 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -11952,8 +11952,8 @@ build_range_temp (tree range_expr)
type_uses_auto (range_type));
/* Create the __range variable. */
- range_temp = build_decl (input_location, VAR_DECL,
- get_identifier ("__for_range"), range_type);
+ range_temp = build_decl (input_location, VAR_DECL, for_range__identifier,
+ range_type);
TREE_USED (range_temp) = 1;
DECL_ARTIFICIAL (range_temp) = 1;
@@ -12060,8 +12060,8 @@ cp_convert_range_for (tree statement, tree range_decl, tree range_expr,
}
/* The new for initialization statement. */
- begin = build_decl (input_location, VAR_DECL,
- get_identifier ("__for_begin"), iter_type);
+ begin = build_decl (input_location, VAR_DECL, for_begin__identifier,
+ iter_type);
TREE_USED (begin) = 1;
DECL_ARTIFICIAL (begin) = 1;
pushdecl (begin);
@@ -12071,8 +12071,7 @@ cp_convert_range_for (tree statement, tree range_decl, tree range_expr,
if (cxx_dialect >= cxx17)
iter_type = cv_unqualified (TREE_TYPE (end_expr));
- end = build_decl (input_location, VAR_DECL,
- get_identifier ("__for_end"), iter_type);
+ end = build_decl (input_location, VAR_DECL, for_end__identifier, iter_type);
TREE_USED (end) = 1;
DECL_ARTIFICIAL (end) = 1;
pushdecl (end);