This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/81033] [8 Regression] Revision r249019 breaks bootstrap on darwin
- From: "dominiq at lps dot ens.fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 03 Jul 2017 14:25:06 +0000
- Subject: [Bug bootstrap/81033] [8 Regression] Revision r249019 breaks bootstrap on darwin
- Auto-submitted: auto-generated
- References: <bug-81033-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81033
--- Comment #10 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The last patch in comment 8 exposes another problem: buf[128] is too small.
The following patch which uses the trick proposed in IRC by Richi to split
assemble_name_raw seems to work
--- ../_clean/gcc/config/darwin.c 2017-01-01 17:39:06.000000000 +0100
+++ gcc/config/darwin.c 2017-07-03 14:21:19.000000000 +0200
@@ -3683,11 +3683,9 @@ default_function_sections:
void
darwin_function_switched_text_sections (FILE *fp, tree decl, bool new_is_cold)
{
- char buf[128];
- snprintf (buf, 128, "%s%s",new_is_cold?"__cold_sect_of_":"__hot_sect_of_",
- IDENTIFIER_POINTER (DECL_NAME (decl)));
/* Make sure we pick up all the relevant quotes etc. */
- assemble_name_raw (fp, (const char *) buf);
+ assemble_name_raw (fp, new_is_cold?"__cold_sect_of_":"__hot_sect_of_");
+ assemble_name_raw (fp, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
fputs (":\n", fp);
}