From 76f9244ed07780936e422cb6d4e9c8d229c1990a Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 22 Apr 2016 12:16:21 -0400 Subject: [PATCH] * parser.c (cp_parser_perform_range_for_lookup): Decay the array. From-SVN: r235370 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/parser.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ecfad0fe5fe..3a3373e3806 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2016-04-22 Jason Merrill + + * parser.c (cp_parser_perform_range_for_lookup): Decay the array. + 2016-04-21 Patrick Palka * name-lookup.c (free_saved_scope): New free list of saved_scope diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index feb8de76bc3..500a9b39a26 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -11413,12 +11413,12 @@ cp_parser_perform_range_for_lookup (tree range, tree *begin, tree *end) if (TREE_CODE (TREE_TYPE (range)) == ARRAY_TYPE) { /* If RANGE is an array, we will use pointer arithmetic. */ - *begin = range; + *begin = decay_conversion (range, tf_warning_or_error); *end = build_binary_op (input_location, PLUS_EXPR, range, array_type_nelts_top (TREE_TYPE (range)), 0); - return build_pointer_type (TREE_TYPE (TREE_TYPE (range))); + return TREE_TYPE (*begin); } else { -- 2.30.2