diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-07-25 18:46:34 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-07-25 18:46:34 +0200 |
commit | 213f5e8accc3e6dad179eafd48c920e524b56be2 (patch) | |
tree | faf01b02efb3ee21176b6e67d3126676e4e778ce /gcc/cp/parser.c | |
parent | c44fa4a6660c4d81891093578d5e9463d6d85b73 (diff) | |
download | gcc-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.c | 11 |
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); |