This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/66448] [6 Regression] Bootstrap fails on darwin after r224161
- From: "aldyh at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 08 Jun 2015 22:02:18 +0000
- Subject: [Bug bootstrap/66448] [6 Regression] Bootstrap fails on darwin after r224161
- Auto-submitted: auto-generated
- References: <bug-66448-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66448
--- Comment #8 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Created attachment 35718
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35718&action=edit
Tentative patch for issue #3
Regarding the Darwin ld64 warnings, I found one instance of a local static DIE
with two DW_AT_location's during x86-64 Linux bootstrap. It was for something
like this:
void foo()
{
static const char msg[] = "asdf";
}
What is happening is that local statics during late dwarf are traversed twice,
once in final.c via debug_hooks->function_decl (and its subsequent local), and
once in toplev.c as we traverse FOR_EACH_DEFINED_SYMBOL with
debug_hooks->late_global_decl.
However, the multiple DW_AT_location's never made it to the object file (on
Linux anyhow) because resolve_addr() removed one of the duplicates.
I wonder if the attached patch catches anything else in Darwin, or if it
eliminates the warning altogether.
Iain, could you try this and see if it either ICEs, or if the warnings are
removed?