From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133]) by sourceware.org (Postfix) with ESMTPS id 468093858C2C for ; Wed, 18 Jan 2023 15:30:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 468093858C2C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-il1-x133.google.com with SMTP id v6so7642026ilq.3 for ; Wed, 18 Jan 2023 07:30:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2JWwKwJKWokSyzf2VjrwSXocNeoTqwQtWeNbvvVwc8s=; b=JDMWWrR0qOENtuoF1v4mxuGdjvIOrSG5qFR6sBFNEMVjl8Ptu4E33I2r5e/iDNrjYu 11qFXwFvgjtOgmLbXq9POeX5cjTyAe5/6TebTMRuOzCMUKsybseDlKukI/bA2Gq62cwV 3OhdY87UY1LBVqj7caJ6fLPw6iuE2aojMh3bsnfTXfKrHMgskk+564OtzymAzWyUgtiS gZuv/P8s3mjYPFY4L3IdC3LonD2gRbzkQWabsg5og73SXy/54w3zEf2qWX28dGLhKNw7 trtpG89e3n4LP8WnijlLMNUqQHU+F4KdT3W8lscR0nbQVbKysukt0w61/DSTJB8iMxda RQug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2JWwKwJKWokSyzf2VjrwSXocNeoTqwQtWeNbvvVwc8s=; b=l4rzNt77sXzNxv5ZLXfLnliDt2cMtpF3XS4AcAWKiNxkGZ4dqK4x0pZtqoB4uxYU4E RwhtSEHRbCv7hnYrCKRttRY3IMdvSN1y8MxPXGfileQaG8xu6A0nJAaOtB98lIrviZOo mFPf1IPHuvRSIvN+7uh8CtwilUi88h3bhyf7zQnvqA66CbrwzQlYPoKQ9n5mnakm4ERG yBZSAWHmGBhMLUxPb6HhqGkTC/4Gfus6VOQNlLyCLTOhFAzHO5EVHZ4awdsFGyJZe8q8 sxc1y0PHLrNA6zHaa+tz7uHYMkN0wk8M4NddV3YeMMM30xbBB0MpvB7y9S7z98pZaTIR Ld1Q== X-Gm-Message-State: AFqh2krcmMUosnOysyRt7GRitcXUHXiDA0YSpr6/RXpQ2zejJA0MOPBE bW/k4wR9RD5R4KQCKBSDInz5pC3GbdC9OBiF X-Google-Smtp-Source: AMrXdXsVoGNqlmAtH8BX8UCQeEJZ8gC6yugNc1tOY4yzI1aAUeuqC/bE7DIBM8Ay/flgeHJ00U3J8g== X-Received: by 2002:a05:6e02:ecf:b0:30f:159b:3846 with SMTP id i15-20020a056e020ecf00b0030f159b3846mr5891711ilk.20.1674055838361; Wed, 18 Jan 2023 07:30:38 -0800 (PST) Received: from localhost.localdomain (97-122-76-186.hlrn.qwest.net. [97.122.76.186]) by smtp.gmail.com with ESMTPSA id m4-20020a056e020de400b0030bf2476c5fsm10106502ilj.25.2023.01.18.07.30.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Jan 2023 07:30:37 -0800 (PST) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 3/6] Pass section index to start_compunit_symtab Date: Wed, 18 Jan 2023 08:30:22 -0700 Message-Id: <20230118153025.342512-4-tromey@adacore.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230118153025.342512-1-tromey@adacore.com> References: <20230118153025.342512-1-tromey@adacore.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 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: Right now, the appropriate section index (apparently always SECT_OFF_TEXT) is passed to end_compunit_symtab. However, it's more convenient to have this section index available when setting the symbol's block. So, this patch rearranges the code to pass the section index to start_compunit_symtab, and then to store the index in the buildsym_compunit object. --- gdb/buildsym-legacy.c | 9 +++++---- gdb/buildsym-legacy.h | 6 +++--- gdb/buildsym.c | 29 +++++++++++++---------------- gdb/buildsym.h | 28 ++++++++++++++++++---------- gdb/coffread.c | 5 +++-- gdb/ctfread.c | 18 +++++++++--------- gdb/dbxread.c | 8 ++++---- gdb/dwarf2/cu.c | 3 ++- gdb/dwarf2/read.c | 5 ++--- gdb/mdebugread.c | 5 ++--- gdb/xcoffread.c | 20 ++++++++++---------- 11 files changed, 71 insertions(+), 65 deletions(-) diff --git a/gdb/buildsym-legacy.c b/gdb/buildsym-legacy.c index e4194b69403..c4a767951f8 100644 --- a/gdb/buildsym-legacy.c +++ b/gdb/buildsym-legacy.c @@ -171,11 +171,11 @@ free_buildsym_compunit (void) } struct compunit_symtab * -end_compunit_symtab (CORE_ADDR end_addr, int section) +end_compunit_symtab (CORE_ADDR end_addr) { gdb_assert (buildsym_compunit != nullptr); struct compunit_symtab *result - = buildsym_compunit->end_compunit_symtab (end_addr, section); + = buildsym_compunit->end_compunit_symtab (end_addr); free_buildsym_compunit (); return result; } @@ -228,14 +228,15 @@ record_line (struct subfile *subfile, int line, CORE_ADDR pc) struct compunit_symtab * start_compunit_symtab (struct objfile *objfile, const char *name, const char *comp_dir, CORE_ADDR start_addr, - enum language language) + enum language language, int section_index) { /* These should have been reset either by successful completion of building a symtab, or by the scoped_free_pendings destructor. */ gdb_assert (buildsym_compunit == nullptr); buildsym_compunit = new struct buildsym_compunit (objfile, name, comp_dir, - language, start_addr); + language, start_addr, + section_index); return buildsym_compunit->get_compunit_symtab (); } diff --git a/gdb/buildsym-legacy.h b/gdb/buildsym-legacy.h index b553eb7e054..438d9ccb381 100644 --- a/gdb/buildsym-legacy.h +++ b/gdb/buildsym-legacy.h @@ -70,8 +70,7 @@ extern void push_subfile (); extern const char *pop_subfile (); -extern struct compunit_symtab *end_compunit_symtab (CORE_ADDR end_addr, - int section); +extern struct compunit_symtab *end_compunit_symtab (CORE_ADDR end_addr); extern struct context_stack *push_context (int desc, CORE_ADDR valu); @@ -83,7 +82,8 @@ extern struct compunit_symtab *start_compunit_symtab (struct objfile *objfile, const char *name, const char *comp_dir, CORE_ADDR start_addr, - enum language language); + enum language language, + int section_index); /* Record the name of the debug format in the current pending symbol table. FORMAT must be a string with a lifetime at least as long as diff --git a/gdb/buildsym.c b/gdb/buildsym.c index adab927235c..8c61223b1a0 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -54,12 +54,14 @@ buildsym_compunit::buildsym_compunit (struct objfile *objfile_, const char *comp_dir_, const char *name_for_id, enum language language_, - CORE_ADDR last_addr) + CORE_ADDR last_addr, + int section_index) : m_objfile (objfile_), m_last_source_file (name == nullptr ? nullptr : xstrdup (name)), m_comp_dir (comp_dir_ == nullptr ? "" : comp_dir_), m_language (language_), - m_last_source_start_addr (last_addr) + m_last_source_start_addr (last_addr), + m_section_index (section_index) { /* Allocate the compunit symtab now. The caller needs it to allocate non-primary symtabs. It is also needed by get_macro_table. */ @@ -854,7 +856,7 @@ buildsym_compunit::end_compunit_symtab_get_static_block (CORE_ADDR end_addr, struct compunit_symtab * buildsym_compunit::end_compunit_symtab_with_blockvector - (struct block *static_block, int section, int expandable) + (struct block *static_block, int expandable) { struct compunit_symtab *cu = m_compunit_symtab; struct blockvector *blockvector; @@ -974,7 +976,7 @@ buildsym_compunit::end_compunit_symtab_with_blockvector set_block_compunit_symtab (b, cu); } - cu->set_block_line_section (section); + cu->set_block_line_section (m_section_index); cu->set_macro_table (release_macros ()); @@ -1014,15 +1016,12 @@ buildsym_compunit::end_compunit_symtab_with_blockvector /* Implementation of the second part of end_compunit_symtab. Pass STATIC_BLOCK as value returned by end_compunit_symtab_get_static_block. - SECTION is the same as for end_compunit_symtab: the section number - (in objfile->section_offsets) of the blockvector and linetable. - If EXPANDABLE is non-zero the GLOBAL_BLOCK dictionary is made expandable. */ struct compunit_symtab * buildsym_compunit::end_compunit_symtab_from_static_block - (struct block *static_block, int section, int expandable) + (struct block *static_block, int expandable) { struct compunit_symtab *cu; @@ -1040,7 +1039,7 @@ buildsym_compunit::end_compunit_symtab_from_static_block cu = NULL; } else - cu = end_compunit_symtab_with_blockvector (static_block, section, expandable); + cu = end_compunit_symtab_with_blockvector (static_block, expandable); return cu; } @@ -1050,9 +1049,7 @@ buildsym_compunit::end_compunit_symtab_from_static_block them), then make the struct symtab for that file and put it in the list of all such. - END_ADDR is the address of the end of the file's text. SECTION is - the section number (in objfile->section_offsets) of the blockvector - and linetable. + END_ADDR is the address of the end of the file's text. Note that it is possible for end_compunit_symtab() to return NULL. In particular, for the DWARF case at least, it will return NULL when @@ -1067,24 +1064,24 @@ buildsym_compunit::end_compunit_symtab_from_static_block end_compunit_symtab_from_static_block yourself. */ struct compunit_symtab * -buildsym_compunit::end_compunit_symtab (CORE_ADDR end_addr, int section) +buildsym_compunit::end_compunit_symtab (CORE_ADDR end_addr) { struct block *static_block; static_block = end_compunit_symtab_get_static_block (end_addr, 0, 0); - return end_compunit_symtab_from_static_block (static_block, section, 0); + return end_compunit_symtab_from_static_block (static_block, 0); } /* Same as end_compunit_symtab except create a symtab that can be later added to. */ struct compunit_symtab * -buildsym_compunit::end_expandable_symtab (CORE_ADDR end_addr, int section) +buildsym_compunit::end_expandable_symtab (CORE_ADDR end_addr) { struct block *static_block; static_block = end_compunit_symtab_get_static_block (end_addr, 1, 0); - return end_compunit_symtab_from_static_block (static_block, section, 1); + return end_compunit_symtab_from_static_block (static_block, 1); } /* Subroutine of augment_type_symtab to simplify it. diff --git a/gdb/buildsym.h b/gdb/buildsym.h index 9724607f3d9..0464c738114 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -146,18 +146,23 @@ struct buildsym_compunit (or NULL if not known). NAME and NAME_FOR_ID have the same purpose as for the start_subfile - method. */ + method. + + SECTION_INDEX is the index of the section for the compunit and + for block symbols in this compunit. Normally SECT_OFF_TEXT. */ buildsym_compunit (struct objfile *objfile_, const char *name, const char *comp_dir_, const char *name_for_id, - enum language language_, CORE_ADDR last_addr); + enum language language_, CORE_ADDR last_addr, + int section_index); /* Same as above, but passes NAME for NAME_FOR_ID. */ buildsym_compunit (struct objfile *objfile_, const char *name, const char *comp_dir_, enum language language_, - CORE_ADDR last_addr) - : buildsym_compunit (objfile_, name, comp_dir_, name, language_, last_addr) + CORE_ADDR last_addr, int section_index) + : buildsym_compunit (objfile_, name, comp_dir_, name, language_, last_addr, + section_index) {} /* Reopen an existing compunit_symtab so that additional symbols can @@ -172,7 +177,8 @@ struct buildsym_compunit m_comp_dir (comp_dir_ == nullptr ? "" : comp_dir_), m_compunit_symtab (cust), m_language (language_), - m_last_source_start_addr (last_addr) + m_last_source_start_addr (last_addr), + m_section_index (cust->block_line_section ()) { } @@ -327,12 +333,11 @@ struct buildsym_compunit (CORE_ADDR end_addr, int expandable, int required); struct compunit_symtab *end_compunit_symtab_from_static_block - (struct block *static_block, int section, int expandable); + (struct block *static_block, int expandable); - struct compunit_symtab *end_compunit_symtab (CORE_ADDR end_addr, int section); + struct compunit_symtab *end_compunit_symtab (CORE_ADDR end_addr); - struct compunit_symtab *end_expandable_symtab (CORE_ADDR end_addr, - int section); + struct compunit_symtab *end_expandable_symtab (CORE_ADDR end_addr); void augment_type_symtab (); @@ -352,7 +357,7 @@ struct buildsym_compunit void watch_main_source_file_lossage (); struct compunit_symtab *end_compunit_symtab_with_blockvector - (struct block *static_block, int section, int expandable); + (struct block *static_block, int expandable); /* The objfile we're reading debug info from. */ struct objfile *m_objfile; @@ -401,6 +406,9 @@ struct buildsym_compunit DW_AT_low_pc attribute of a DW_TAG_compile_unit DIE. */ CORE_ADDR m_last_source_start_addr; + /* The section index. */ + int m_section_index; + /* Stack of subfile names. */ std::vector m_subfile_stack; diff --git a/gdb/coffread.c b/gdb/coffread.c index 4950a7324c8..041960d0939 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -376,7 +376,8 @@ coff_start_compunit_symtab (struct objfile *objfile, const char *name) set_last_source_start_addr in coff_end_compunit_symtab. */ 0, /* Let buildsym.c deduce the language for this symtab. */ - language_unknown); + language_unknown, + SECT_OFF_TEXT (objfile)); record_debugformat ("COFF"); } @@ -404,7 +405,7 @@ coff_end_compunit_symtab (struct objfile *objfile) { set_last_source_start_addr (current_source_start_addr); - end_compunit_symtab (current_source_end_addr, SECT_OFF_TEXT (objfile)); + end_compunit_symtab (current_source_end_addr); /* Reinitialize for beginning of new file. */ set_last_source_file (NULL); diff --git a/gdb/ctfread.c b/gdb/ctfread.c index 97a0df91a53..eca1bef69b3 100644 --- a/gdb/ctfread.c +++ b/gdb/ctfread.c @@ -1246,30 +1246,30 @@ get_objfile_text_range (struct objfile *of, int *tsize) static void ctf_start_compunit_symtab (ctf_psymtab *pst, - struct objfile *of, CORE_ADDR text_offset) + struct objfile *of, CORE_ADDR text_offset, + int section_offset) { struct ctf_context *ccp; ccp = &pst->context; ccp->builder = new buildsym_compunit (of, pst->filename, nullptr, - language_c, text_offset); + language_c, text_offset, section_offset); ccp->builder->record_debugformat ("ctf"); } /* Finish reading symbol/type definitions in CTF format. - END_ADDR is the end address of the file's text. SECTION is - the .text section number. */ + END_ADDR is the end address of the file's text. */ static struct compunit_symtab * ctf_end_compunit_symtab (ctf_psymtab *pst, - CORE_ADDR end_addr, int section) + CORE_ADDR end_addr) { struct ctf_context *ccp; ccp = &pst->context; struct compunit_symtab *result - = ccp->builder->end_compunit_symtab (end_addr, section); + = ccp->builder->end_compunit_symtab (end_addr); delete ccp->builder; ccp->builder = nullptr; return result; @@ -1406,13 +1406,13 @@ ctf_psymtab::read_symtab (struct objfile *objfile) int tsize; offset = get_objfile_text_range (objfile, &tsize); - ctf_start_compunit_symtab (this, objfile, offset); + ctf_start_compunit_symtab (this, objfile, offset, + SECT_OFF_TEXT (objfile)); expand_psymtab (objfile); set_text_low (offset); set_text_high (offset + tsize); - compunit_symtab = ctf_end_compunit_symtab (this, offset + tsize, - SECT_OFF_TEXT (objfile)); + compunit_symtab = ctf_end_compunit_symtab (this, offset + tsize); /* Finish up the debug error message. */ if (info_verbose) diff --git a/gdb/dbxread.c b/gdb/dbxread.c index dc11f0bb6a9..b2ca4a83933 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -2331,8 +2331,7 @@ read_ofile_symtab (struct objfile *objfile, legacy_psymtab *pst) if (get_last_source_start_addr () > text_offset) set_last_source_start_addr (text_offset); - pst->compunit_symtab = end_compunit_symtab (text_offset + text_size, - SECT_OFF_TEXT (objfile)); + pst->compunit_symtab = end_compunit_symtab (text_offset + text_size); end_stabs (); @@ -2594,7 +2593,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name, patch_subfile_names (get_current_subfile (), name); break; /* Ignore repeated SOs. */ } - end_compunit_symtab (valu, SECT_OFF_TEXT (objfile)); + end_compunit_symtab (valu); end_stabs (); } @@ -2606,7 +2605,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name, function_start_offset = 0; start_stabs (); - start_compunit_symtab (objfile, name, NULL, valu, language); + start_compunit_symtab (objfile, name, NULL, valu, language, + SECT_OFF_TEXT (objfile)); record_debugformat ("stabs"); break; diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c index 9c1691c90e9..c4b3d9e8bd1 100644 --- a/gdb/dwarf2/cu.c +++ b/gdb/dwarf2/cu.c @@ -78,7 +78,8 @@ dwarf2_cu::start_compunit_symtab (const char *name, const char *comp_dir, m_builder.reset (new struct buildsym_compunit (this->per_objfile->objfile, - name, comp_dir, name_for_id, lang (), low_pc)); + name, comp_dir, name_for_id, lang (), low_pc, + SECT_OFF_TEXT (this->per_objfile->objfile))); list_in_scope = get_builder ()->get_file_symbols (); diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 6a7412ce834..612b7299c0f 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -8456,7 +8456,7 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language) dwarf2_record_block_ranges (cu->dies, static_block, baseaddr, cu); cust = cu->get_builder ()->end_compunit_symtab_from_static_block - (static_block, SECT_OFF_TEXT (objfile), 0); + (static_block, 0); if (cust != NULL) { @@ -8507,7 +8507,6 @@ process_full_type_unit (dwarf2_cu *cu, enum language pretend_language) { dwarf2_per_objfile *per_objfile = cu->per_objfile; - struct objfile *objfile = per_objfile->objfile; struct compunit_symtab *cust; struct signatured_type *sig_type; @@ -8541,7 +8540,7 @@ process_full_type_unit (dwarf2_cu *cu, if (tug_unshare->compunit_symtab == NULL) { buildsym_compunit *builder = cu->get_builder (); - cust = builder->end_expandable_symtab (0, SECT_OFF_TEXT (objfile)); + cust = builder->end_expandable_symtab (0); tug_unshare->compunit_symtab = cust; if (cust != NULL) diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 4feee39035e..609b51727aa 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -3968,7 +3968,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile) { valu += section_offsets[SECT_OFF_TEXT (objfile)]; previous_stab_code = N_SO; - cust = end_compunit_symtab (valu, SECT_OFF_TEXT (objfile)); + cust = end_compunit_symtab (valu); end_stabs (); last_symtab_ended = 1; } @@ -4028,8 +4028,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile) if (! last_symtab_ended) { - cust = end_compunit_symtab (pst->raw_text_high (), - SECT_OFF_TEXT (objfile)); + cust = end_compunit_symtab (pst->raw_text_high ()); end_stabs (); } diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 52ae3aecb97..3b990d660f0 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -958,7 +958,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) start_stabs (); start_compunit_symtab (objfile, filestring, NULL, file_start_addr, - pst_symtab_language); + pst_symtab_language, SECT_OFF_TEXT (objfile)); record_debugformat (debugfmt); symnum = ((struct xcoff_symloc *) pst->read_symtab_private)->first_symnum; max_symnum = @@ -1045,14 +1045,14 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) { if (get_last_source_file ()) { - pst->compunit_symtab = end_compunit_symtab - (cur_src_end_addr, SECT_OFF_TEXT (objfile)); + pst->compunit_symtab = end_compunit_symtab (cur_src_end_addr); end_stabs (); } start_stabs (); start_compunit_symtab (objfile, "_globals_", NULL, - 0, pst_symtab_language); + 0, pst_symtab_language, + SECT_OFF_TEXT (objfile)); record_debugformat (debugfmt); cur_src_end_addr = first_object_file_end; /* Done with all files, everything from here on is globals. */ @@ -1136,14 +1136,14 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) { complete_symtab (filestring, file_start_addr); cur_src_end_addr = file_end_addr; - end_compunit_symtab (file_end_addr, - SECT_OFF_TEXT (objfile)); + end_compunit_symtab (file_end_addr); end_stabs (); start_stabs (); /* Give all csects for this source file the same name. */ start_compunit_symtab (objfile, filestring, NULL, - 0, pst_symtab_language); + 0, pst_symtab_language, + SECT_OFF_TEXT (objfile)); record_debugformat (debugfmt); } @@ -1243,7 +1243,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) complete_symtab (filestring, file_start_addr); cur_src_end_addr = file_end_addr; - end_compunit_symtab (file_end_addr, SECT_OFF_TEXT (objfile)); + end_compunit_symtab (file_end_addr); end_stabs (); /* XCOFF, according to the AIX 3.2 documentation, puts the @@ -1263,7 +1263,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) start_stabs (); start_compunit_symtab (objfile, filestring, NULL, 0, - pst_symtab_language); + pst_symtab_language, SECT_OFF_TEXT (objfile)); record_debugformat (debugfmt); last_csect_name = 0; @@ -1431,7 +1431,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst) complete_symtab (filestring, file_start_addr); cur_src_end_addr = file_end_addr; - cust = end_compunit_symtab (file_end_addr, SECT_OFF_TEXT (objfile)); + cust = end_compunit_symtab (file_end_addr); /* When reading symbols for the last C_FILE of the objfile, try to make sure that we set pst->compunit_symtab to the symtab for the file, not to the _globals_ symtab. I'm not sure whether this -- 2.38.1