aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-12-02 17:11:33 -0500
committerJason Merrill <jason@redhat.com>2020-12-04 14:45:25 -0500
commitdf933e307b1950ce12472660dcac1765b8eb431d (patch)
tree6eeefb7f2051c8c3525431d0e35f8b5668922172 /gcc/tree.c
parentb96802994acb47d5a86d9112d7b1eeda9418827f (diff)
downloadgcc-df933e307b1950ce12472660dcac1765b8eb431d.zip
gcc-df933e307b1950ce12472660dcac1765b8eb431d.tar.gz
gcc-df933e307b1950ce12472660dcac1765b8eb431d.tar.bz2
vec: Simplify use with C++11 range-based 'for'.
It looks cleaner if we can use a vec* directly as a range for the C++11 range-based 'for' loop, without needing to indirect from it, and also works with null pointers. The change in cp_parser_late_parsing_default_args is an example of how this can be used to simplify a simple loop over a vector. Reverse or subset iteration will require adding range adaptors. I deliberately didn't format the new overloads for etags since they are trivial. gcc/ChangeLog: * vec.h (begin, end): Add overloads for vec*. * tree.c (build_constructor_from_vec): Remove *. gcc/cp/ChangeLog: * decl2.c (clear_consteval_vfns): Remove *. * pt.c (do_auto_deduction): Remove *. * parser.c (cp_parser_late_parsing_default_args): Change loop to use range 'for'.
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 72311005..02ce5dd 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -2185,7 +2185,7 @@ build_constructor_from_vec (tree type, const vec<tree, va_gc> *vals)
{
vec<constructor_elt, va_gc> *v = NULL;
- for (tree t : *vals)
+ for (tree t : vals)
CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, t);
return build_constructor (type, v);