From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id 23979385DC33; Thu, 24 Jun 2021 13:58:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 23979385DC33 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-1791] c: Fix up c_parser_has_attribute_expression [PR101176] X-Act-Checkin: gcc X-Git-Author: Jakub Jelinek X-Git-Refname: refs/heads/master X-Git-Oldrev: fdc5522fb04b4a820b28c4d1f16f54897f5978de X-Git-Newrev: 178fb8df9315f2f8f45b7fe5faf11a9c2912cc28 Message-Id: <20210624135841.23979385DC33@sourceware.org> Date: Thu, 24 Jun 2021 13:58:41 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jun 2021 13:58:41 -0000 https://gcc.gnu.org/g:178fb8df9315f2f8f45b7fe5faf11a9c2912cc28 commit r12-1791-g178fb8df9315f2f8f45b7fe5faf11a9c2912cc28 Author: Jakub Jelinek Date: Thu Jun 24 15:58:02 2021 +0200 c: Fix up c_parser_has_attribute_expression [PR101176] This function keeps src_range member of the result uninitialized, which at least under valgrind can show up later when those uninitialized location_t's can make it into the IL or location_t hash tables. 2021-06-24 Jakub Jelinek PR c/101176 * c-parser.c (c_parser_has_attribute_expression): Set source range for the result. Diff: --- gcc/c/c-parser.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index c0f702049bb..27034f88f49 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -8406,6 +8406,7 @@ c_parser_has_attribute_expression (c_parser *parser) { gcc_assert (c_parser_next_token_is_keyword (parser, RID_BUILTIN_HAS_ATTRIBUTE)); + location_t start = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); c_inhibit_evaluation_warnings++; @@ -8484,6 +8485,7 @@ c_parser_has_attribute_expression (c_parser *parser) parser->translate_strings_p = save_translate_strings_p; + location_t finish = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else @@ -8512,6 +8514,7 @@ c_parser_has_attribute_expression (c_parser *parser) else result.value = boolean_false_node; + set_c_expr_source_range (&result, start, finish); return result; }