From 930520db8e2d01fd8cf064c0ae2f61b683248762 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 24 Jun 2021 15:58:02 +0200 Subject: [PATCH] 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. (cherry picked from commit 178fb8df9315f2f8f45b7fe5faf11a9c2912cc28) --- 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 5176549acafa..713dd7740ea8 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -8459,6 +8459,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++; @@ -8537,6 +8538,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 @@ -8565,6 +8567,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; } -- 2.47.2