From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id 6E4A3395BC74 for ; Tue, 12 May 2020 21:17:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6E4A3395BC74 X-ASG-Debug-ID: 1589318268-0c856e18f31444ee0001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id lveCIa00M5tIIAfw (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 12 May 2020 17:17:48 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@efficios.com X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from epycamd.internal.efficios.com (192-222-181-218.qc.cable.ebox.net [192.222.181.218]) by smtp.ebox.ca (Postfix) with ESMTP id A552E441B21; Tue, 12 May 2020 17:17:48 -0400 (EDT) From: Simon Marchi X-Barracuda-Effective-Source-IP: 192-222-181-218.qc.cable.ebox.net[192.222.181.218] X-Barracuda-Apparent-Source-IP: 192.222.181.218 X-Barracuda-RBL-IP: 192.222.181.218 To: gdb-patches@sourceware.org Subject: [PATCH v2 36/42] Pass dwarf2_cu to process_full_{comp,type}_unit Date: Tue, 12 May 2020 17:17:06 -0400 X-ASG-Orig-Subj: [PATCH v2 36/42] Pass dwarf2_cu to process_full_{comp, type}_unit Message-Id: <20200512211712.6543-37-simon.marchi@efficios.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200512210913.5593-1-simon.marchi@efficios.com> References: <20200512210913.5593-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1589318268 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 4578 X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.81805 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Spam-Status: No, score=-25.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 May 2020 21:17:50 -0000 From: Simon Marchi These two functions work on a dwarf2_cu. It is currently obtained from the per_cu->cu link, which we want to remove. Make them accept the dwarf2_cu directly as a parameter. This moves the per_cu->cu references one level up, but that one will be removed too in a subsequent patch. gdb/ChangeLog: * dwarf2/read.c (process_full_comp_unit, process_full_type_unit): Remove per_cu, per_objfile paramters. Add dwarf2_cu parameter. (process_queue): Update. --- gdb/dwarf2/read.c | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 5eb32a162b6..68d7efaf549 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -1570,12 +1570,10 @@ static void load_full_comp_unit (dwarf2_per_cu_data *per_cu, bool skip_partial, enum language pretend_language); -static void process_full_comp_unit (dwarf2_per_cu_data *per_cu, - dwarf2_per_objfile *per_objfile, +static void process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language); -static void process_full_type_unit (dwarf2_per_cu_data *per_cu, - dwarf2_per_objfile *per_objfile, +static void process_full_type_unit (dwarf2_cu *cu, enum language pretend_language); static void dwarf2_add_dependence (struct dwarf2_cu *, @@ -8983,11 +8981,9 @@ process_queue (struct dwarf2_per_objfile *dwarf2_per_objfile) fprintf_unfiltered (gdb_stdlog, "Expanding symtab of %s\n", buf); if (per_cu->is_debug_types) - process_full_type_unit (per_cu, dwarf2_per_objfile, - item.pretend_language); + process_full_type_unit (per_cu->cu, item.pretend_language); else - process_full_comp_unit (per_cu, dwarf2_per_objfile, - item.pretend_language); + process_full_comp_unit (per_cu->cu, item.pretend_language); if (dwarf_read_debug >= debug_print_threshold) fprintf_unfiltered (gdb_stdlog, "Done expanding %s\n", buf); @@ -9721,15 +9717,13 @@ process_cu_includes (struct dwarf2_per_objfile *dwarf2_per_objfile) dwarf2_per_objfile->per_bfd->just_read_cus.clear (); } -/* Generate full symbol information for PER_CU, whose DIEs have +/* Generate full symbol information for CU, whose DIEs have already been loaded into memory. */ static void -process_full_comp_unit (dwarf2_per_cu_data *per_cu, - dwarf2_per_objfile *dwarf2_per_objfile, - enum language pretend_language) +process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language) { - struct dwarf2_cu *cu = per_cu->cu; + dwarf2_per_objfile *dwarf2_per_objfile = cu->per_objfile; struct objfile *objfile = dwarf2_per_objfile->objfile; struct gdbarch *gdbarch = objfile->arch (); CORE_ADDR lowpc, highpc; @@ -9812,30 +9806,29 @@ process_full_comp_unit (dwarf2_per_cu_data *per_cu, cust->call_site_htab = cu->call_site_htab; } - dwarf2_per_objfile->set_symtab (per_cu, cust); + dwarf2_per_objfile->set_symtab (cu->per_cu, cust); /* Push it for inclusion processing later. */ - dwarf2_per_objfile->per_bfd->just_read_cus.push_back (per_cu); + dwarf2_per_objfile->per_bfd->just_read_cus.push_back (cu->per_cu); /* Not needed any more. */ cu->reset_builder (); } -/* Generate full symbol information for type unit PER_CU, whose DIEs have +/* Generate full symbol information for type unit CU, whose DIEs have already been loaded into memory. */ static void -process_full_type_unit (dwarf2_per_cu_data *per_cu, - dwarf2_per_objfile *dwarf2_per_objfile, +process_full_type_unit (dwarf2_cu *cu, enum language pretend_language) { - struct dwarf2_cu *cu = per_cu->cu; + dwarf2_per_objfile *dwarf2_per_objfile = cu->per_objfile; struct objfile *objfile = dwarf2_per_objfile->objfile; struct compunit_symtab *cust; struct signatured_type *sig_type; - gdb_assert (per_cu->is_debug_types); - sig_type = (struct signatured_type *) per_cu; + gdb_assert (cu->per_cu->is_debug_types); + sig_type = (struct signatured_type *) cu->per_cu; /* Clear the list here in case something was left over. */ cu->method_list.clear (); @@ -9887,7 +9880,7 @@ process_full_type_unit (dwarf2_per_cu_data *per_cu, cust = tug_unshare->compunit_symtab; } - dwarf2_per_objfile->set_symtab (per_cu, cust); + dwarf2_per_objfile->set_symtab (cu->per_cu, cust); /* Not needed any more. */ cu->reset_builder (); -- 2.26.2