From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 49DC6385841B for ; Wed, 4 Oct 2023 02:23:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 49DC6385841B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=polymtl.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=polymtl.ca Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 3942N7jQ025343 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 3 Oct 2023 22:23:11 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 3942N7jQ025343 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=polymtl.ca; s=default; t=1696386192; bh=wNrPuQZgj3mRpCodOoUT/5pK6v2xdjlkcXtI4n71jKY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C9YN30gCp49iyfEhipx0h5g6GaSUQXvww3xF2etNsl977g21TLODxHvI1oZpJ89Nd 8oIvAqRa1QkwT2VScjH7E/M0hEznAn0JcIUyE7OxTuwYGwtYMMNYjfIFxRKDIP8rFe xn0dDhAOHzsBwlg0i1x2BVJhu7O+dpBAU2U6Ldnk= Received: from simark.localdomain (modemcable238.237-201-24.mc.videotron.ca [24.201.237.238]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 298F61E0C3; Tue, 3 Oct 2023 22:23:07 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 2/8] gdb: add program_space parameters to some functions in symtab.c Date: Tue, 3 Oct 2023 22:20:17 -0400 Message-ID: <20231004022305.298534-3-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231004022305.298534-1-simon.marchi@polymtl.ca> References: <20231004022305.298534-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Wed, 4 Oct 2023 02:23:07 +0000 X-Spam-Status: No, score=-3188.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP 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: From: Simon Marchi Add some program_space parameters to functions related to getting and setting the main name, making the references to current_program_space bubble up a bit. find_main_name calls ada_main_name, which implicitly relies on the current program space, so I didn't add a parameter to that function. Change-Id: I9996955e8ae56832bbd461964d978e700e6feaf4 --- gdb/symtab.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/gdb/symtab.c b/gdb/symtab.c index e399dd81d810..afad782fcdbf 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -100,7 +100,8 @@ static struct block_symbol enum block_enum block_index, const char *name, const domain_enum domain); -static void set_main_name (const char *name, enum language lang); +static void set_main_name (program_space *pspace, const char *name, + language lang); /* Type of the data stored on the program space. */ @@ -1700,7 +1701,7 @@ symtab_new_objfile_observer (struct objfile *objfile) /* When all objfiles have been removed (OBJFILE is nullptr), then forget everything we know about the main function. */ if (objfile == nullptr) - set_main_name (nullptr, language_unknown); + set_main_name (current_program_space, nullptr, language_unknown); } /* This module's 'free_objfile' observer. */ @@ -6178,10 +6179,10 @@ make_source_files_completion_list (const char *text, const char *word) the object has not yet been created, create it and fill in some default values. */ -static struct main_info * -get_main_info (void) +static main_info * +get_main_info (program_space *pspace) { - struct main_info *info = main_progspace_key.get (current_program_space); + main_info *info = main_progspace_key.get (pspace); if (info == NULL) { @@ -6191,16 +6192,16 @@ get_main_info (void) gdb returned "main" as the name even if no function named "main" was defined the program; and this approach lets us keep compatibility. */ - info = main_progspace_key.emplace (current_program_space); + info = main_progspace_key.emplace (pspace); } return info; } static void -set_main_name (const char *name, enum language lang) +set_main_name (program_space *pspace, const char *name, enum language lang) { - struct main_info *info = get_main_info (); + main_info *info = get_main_info (pspace); if (!info->name_of_main.empty ()) { @@ -6221,6 +6222,7 @@ static void find_main_name (void) { const char *new_main_name; + program_space *pspace = current_program_space; /* First check the objfiles to see whether a debuginfo reader has picked up the appropriate main name. Historically the main name @@ -6232,7 +6234,8 @@ find_main_name (void) { if (objfile->per_bfd->name_of_main != NULL) { - set_main_name (objfile->per_bfd->name_of_main, + set_main_name (pspace, + objfile->per_bfd->name_of_main, objfile->per_bfd->language_of_main); return; } @@ -6257,28 +6260,28 @@ find_main_name (void) new_main_name = ada_main_name (); if (new_main_name != NULL) { - set_main_name (new_main_name, language_ada); + set_main_name (pspace, new_main_name, language_ada); return; } new_main_name = d_main_name (); if (new_main_name != NULL) { - set_main_name (new_main_name, language_d); + set_main_name (pspace, new_main_name, language_d); return; } new_main_name = go_main_name (); if (new_main_name != NULL) { - set_main_name (new_main_name, language_go); + set_main_name (pspace, new_main_name, language_go); return; } new_main_name = pascal_main_name (); if (new_main_name != NULL) { - set_main_name (new_main_name, language_pascal); + set_main_name (pspace, new_main_name, language_pascal); return; } @@ -6289,14 +6292,14 @@ find_main_name (void) bool symbol_found_p = false; gdbarch_iterate_over_objfiles_in_search_order (target_gdbarch (), - [&symbol_found_p] (objfile *obj) + [&symbol_found_p, pspace] (objfile *obj) { language lang = obj->lookup_global_symbol_language ("main", VAR_DOMAIN, &symbol_found_p); if (symbol_found_p) { - set_main_name ("main", lang); + set_main_name (pspace, "main", lang); return 1; } @@ -6306,7 +6309,7 @@ find_main_name (void) if (symbol_found_p) return; - set_main_name ("main", language_unknown); + set_main_name (pspace, "main", language_unknown); } /* See symtab.h. */ @@ -6314,7 +6317,7 @@ find_main_name (void) const char * main_name () { - struct main_info *info = get_main_info (); + main_info *info = get_main_info (current_program_space); if (info->name_of_main.empty ()) find_main_name (); @@ -6328,7 +6331,7 @@ main_name () enum language main_language (void) { - struct main_info *info = get_main_info (); + main_info *info = get_main_info (current_program_space); if (info->name_of_main.empty ()) find_main_name (); -- 2.42.0