From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) by sourceware.org (Postfix) with ESMTPS id F20EA3809BD0 for ; Thu, 6 Jun 2024 14:45:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F20EA3809BD0 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F20EA3809BD0 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d32 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717685152; cv=none; b=hIAHc7HBhN2UzEEYP/Bh0HyezA0W2StqrCXqgTsgDP8Ix1/rXIqrwBL6wy56nhAMigsypG4QoWUiwN8XbNqHK1pCWTarCj0pYQG8yYhZAsYS3IkNnENQzZQ0aFJVplHXWEyd3MXO3jU6iMEaGPZgIBlEBBcjDkh+IIo9oyg+o6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717685152; c=relaxed/simple; bh=IZ3UDbdOYi0PRs2okqgci+//JN2OVUcwjZkBT6B6KZE=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=SHHrGVapiTH094Uk/2dVnr//6F3opS2kpMC+njQraQIeOyijOy2JNuHfQa/qoBsqDxS4G5nUJkgpXVl726ypZoZ/DJG9cPC9cPUz8PDsPyrCaYWQt56qCDm2lB0sn0XfZOdw3RoaeIV9n9u45xNrWg69vb8BoSJKevr3+rQSN1Q= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd32.google.com with SMTP id ca18e2360f4ac-7eb12b2bf78so45132939f.0 for ; Thu, 06 Jun 2024 07:45:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1717685147; x=1718289947; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HRMhyohU1Vwc9c5YyY5rlv1qotlwjULJtdI+RFDfeJg=; b=dQYnjvQ7t+lWplsbaDVCeZ0Cg9LAA3gcxkoUiRYDLy99CPdE3AH7r8ibZ08BoHdga3 q78ed28eZ8IAXiFXYsA4FRHprx5BY0YQLjx8aUwnStppyftePPTxIkUJ33aNzPxcxg1i m32JW99YIOsOtdB7Ebfs/ErpQ0jRHKjD5ETCD6Ae358p3tZ/V3RtSJfUAjRFpT67EQLe 581HhxiuwxLvlBhBpbHF7nFPb+CVXgLRVZ/zCf/9ZnmRMekt+xrDT7ImgSpodIOq+fHV 9VmVsXwwjvlV8m2EwBQAS6kl+p88YFx4G6SyWjGZfjw+ZzkJphac07eBeWdZMUJTAkA+ SX7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717685147; x=1718289947; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HRMhyohU1Vwc9c5YyY5rlv1qotlwjULJtdI+RFDfeJg=; b=YJNn8SuuTTSe7VMC5wBiHRS2ivBETcl0fOOVRdSrhDm3IT6RMN6C0jdv/qXGcAYRRF rQvmpYQU51bRetJe3zgIDt/6ltW/9A1/gmVdFsb6rt0EeSaK8NK2XeUXvLBxDYJGd0/p fY7HRhce7uxDzM6cDOLKwGSTgy0TRLxZp4EVNZDnMVdSgKWFPhr/u/o5Ot/PXA12RWin tyjgilL7wDE33i9FeMvcQ/N19Os10WIqYiJ5T7QGq9BcYweiJoX/cRnhTmDsiY6HZQ2v nueVz3t19sekHKOd6RVaNCf5Y8VD1+JtquRAWRpGnLVfVmMCahE3mafZaIGv4UjeT41O aRzw== X-Gm-Message-State: AOJu0YxIlkl7nxvGUBCPNUNce3ZuXWhikc9HglBweyNHaSwKNiqluZOl 2wpkV+8GBDygGMJ0USho4o/5y1ouqns/1uAThwhzSzjrYBEPPnotsc6Bknc0Ujt/HWu/Mxi6Bnk = X-Google-Smtp-Source: AGHT+IG1RFmZKLcTVw5HWYdwmTswGr1J0ymQPTBJVENC9ezEz0GDYE5VQQVuHN4JkDUkxoxBgdl07g== X-Received: by 2002:a05:6602:2dc9:b0:7eb:2c80:5329 with SMTP id ca18e2360f4ac-7eb3c4ab8edmr733845039f.7.1717685147092; Thu, 06 Jun 2024 07:45:47 -0700 (PDT) Received: from localhost.localdomain (75-166-134-4.hlrn.qwest.net. [75.166.134.4]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4b7a2244ea1sm360426173.47.2024.06.06.07.45.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 07:45:46 -0700 (PDT) From: Tom Tromey Date: Thu, 06 Jun 2024 08:45:45 -0600 Subject: [PATCH 2/6] Remove PARSER_RESULT macro MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240606-linespec-no-macros-v1-2-a748ab917e12@adacore.com> References: <20240606-linespec-no-macros-v1-0-a748ab917e12@adacore.com> In-Reply-To: <20240606-linespec-no-macros-v1-0-a748ab917e12@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.13.0 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This removes the PARSER_RESULT macro from linespec.c. --- gdb/linespec.c | 56 +++++++++++++++++++++++++------------------------------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index 0d7cb691e05..2ad4b9fe812 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -314,7 +314,6 @@ struct linespec_parser /* The result of the parse. */ linespec result; -#define PARSER_RESULT(PPTR) (&(PPTR)->result) /* What the parser believes the current word point should complete to. */ @@ -342,7 +341,7 @@ struct linespec_parser /* A convenience macro for accessing the explicit location spec result of the parser. */ -#define PARSER_EXPLICIT(PPTR) (&PARSER_RESULT ((PPTR))->explicit_loc) +#define PARSER_EXPLICIT(PPTR) (&((PPTR)->result).explicit_loc) /* Prototypes for local functions. */ @@ -1811,14 +1810,14 @@ linespec_parse_basic (linespec_parser *parser) /* Try looking it up as a function/method. */ find_linespec_symbols (&parser->state, - PARSER_RESULT (parser)->file_symtabs, name.get (), + parser->result.file_symtabs, name.get (), PARSER_EXPLICIT (parser)->func_name_match_type, &symbols, &minimal_symbols); if (!symbols.empty () || !minimal_symbols.empty ()) { - PARSER_RESULT (parser)->function_symbols = std::move (symbols); - PARSER_RESULT (parser)->minimal_symbols = std::move (minimal_symbols); + parser->result.function_symbols = std::move (symbols); + parser->result.minimal_symbols = std::move (minimal_symbols); PARSER_EXPLICIT (parser)->function_name = std::move (name); } else @@ -1831,9 +1830,8 @@ linespec_parse_basic (linespec_parser *parser) if (!labels.empty ()) { - PARSER_RESULT (parser)->labels.label_symbols = std::move (labels); - PARSER_RESULT (parser)->labels.function_symbols - = std::move (symbols); + parser->result.labels.label_symbols = std::move (labels); + parser->result.labels.function_symbols = std::move (symbols); PARSER_EXPLICIT (parser)->label_name = std::move (name); } else if (token.type == LSTOKEN_STRING @@ -1934,15 +1932,13 @@ linespec_parse_basic (linespec_parser *parser) name = copy_token_string (token); std::vector labels = find_label_symbols (&parser->state, - PARSER_RESULT (parser)->function_symbols, + parser->result.function_symbols, &symbols, name.get ()); if (!labels.empty ()) { - PARSER_RESULT (parser)->labels.label_symbols - = std::move (labels); - PARSER_RESULT (parser)->labels.function_symbols - = std::move (symbols); + parser->result.labels.label_symbols = std::move (labels); + parser->result.labels.function_symbols = std::move (symbols); PARSER_EXPLICIT (parser)->label_name = std::move (name); } else @@ -2488,7 +2484,7 @@ parse_linespec (linespec_parser *parser, const char *arg, if (parser->completion_tracker == NULL) { std::vector values - = decode_objc (&parser->state, PARSER_RESULT (parser), arg); + = decode_objc (&parser->state, &parser->result, arg); if (!values.empty ()) return values; } @@ -2512,7 +2508,7 @@ parse_linespec (linespec_parser *parser, const char *arg, { /* A NULL entry means to use GLOBAL_DEFAULT_SYMTAB. */ if (parser->completion_tracker == NULL) - PARSER_RESULT (parser)->file_symtabs.push_back (nullptr); + parser->result.file_symtabs.push_back (nullptr); /* User specified a convenience variable or history value. */ gdb::unique_xmalloc_ptr var = copy_token_string (token); @@ -2553,7 +2549,7 @@ parse_linespec (linespec_parser *parser, const char *arg, /* Check if the input is a filename. */ try { - PARSER_RESULT (parser)->file_symtabs + parser->result.file_symtabs = symtabs_from_filename (user_filename.get (), parser->state.search_pspace); } @@ -2576,7 +2572,7 @@ parse_linespec (linespec_parser *parser, const char *arg, else { /* A NULL entry means to use GLOBAL_DEFAULT_SYMTAB. */ - PARSER_RESULT (parser)->file_symtabs.push_back (nullptr); + parser->result.file_symtabs.push_back (nullptr); } } /* If the next token is not EOI, KEYWORD, or COMMA, issue an error. */ @@ -2592,17 +2588,17 @@ parse_linespec (linespec_parser *parser, const char *arg, else { /* A NULL entry means to use GLOBAL_DEFAULT_SYMTAB. */ - PARSER_RESULT (parser)->file_symtabs.push_back (nullptr); + parser->result.file_symtabs.push_back (nullptr); } /* Parse the rest of the linespec. */ linespec_parse_basic (parser); if (parser->completion_tracker == NULL - && PARSER_RESULT (parser)->function_symbols.empty () - && PARSER_RESULT (parser)->labels.label_symbols.empty () + && parser->result.function_symbols.empty () + && parser->result.labels.label_symbols.empty () && PARSER_EXPLICIT (parser)->line_offset.sign == LINE_OFFSET_UNKNOWN - && PARSER_RESULT (parser)->minimal_symbols.empty ()) + && parser->result.minimal_symbols.empty ()) { /* The linespec didn't parse. Re-throw the file exception if there was one. */ @@ -2632,10 +2628,9 @@ parse_linespec (linespec_parser *parser, const char *arg, parser->complete_what = linespec_complete_what::EXPRESSION; } - /* Convert the data in PARSER_RESULT to SALs. */ + /* Convert the data in the parser's result to SALs. */ if (parser->completion_tracker == NULL) - return convert_linespec_to_sals (&parser->state, - PARSER_RESULT (parser)); + return convert_linespec_to_sals (&parser->state, &parser->result); return {}; } @@ -2826,7 +2821,7 @@ complete_label (completion_tracker &tracker, std::vector label_function_symbols; std::vector labels = find_label_symbols (&parser->state, - PARSER_RESULT (parser)->function_symbols, + parser->result.function_symbols, &label_function_symbols, label_name, true); @@ -2854,7 +2849,7 @@ linespec_complete_label (completion_tracker &tracker, try { convert_explicit_location_spec_to_linespec (&parser.state, - PARSER_RESULT (&parser), + &parser.result, source_filename, function_name, func_name_match_type, @@ -2934,13 +2929,12 @@ linespec_complete (completion_tracker &tracker, const char *text, std::vector function_symbols; std::vector minimal_symbols; find_linespec_symbols (&parser.state, - PARSER_RESULT (&parser)->file_symtabs, + parser.result.file_symtabs, func_name, match_type, &function_symbols, &minimal_symbols); - PARSER_RESULT (&parser)->function_symbols = std::move (function_symbols); - PARSER_RESULT (&parser)->minimal_symbols = std::move (minimal_symbols); - + parser.result.function_symbols = std::move (function_symbols); + parser.result.minimal_symbols = std::move (minimal_symbols); complete_label (tracker, &parser, parser.completion_word); } else if (parser.complete_what == linespec_complete_what::FUNCTION) @@ -3106,7 +3100,7 @@ location_spec_to_sals (linespec_parser *parser, const explicit_location_spec *explicit_locspec = as_explicit_location_spec (locspec); result = convert_explicit_location_spec_to_sals (&parser->state, - PARSER_RESULT (parser), + &parser->result, explicit_locspec); } break; -- 2.44.0