[Bug rtl-optimization/89490] [9 Regression] char array constant put in string merge section
bernd.edlinger at hotmail dot de
gcc-bugzilla@gcc.gnu.org
Mon Feb 25 12:16:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89490
--- Comment #4 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
funny, how I managed to overlook this...
--- varasm.c.orig 2019-01-25 17:57:32.000000000 +0100
+++ varasm.c 2019-02-25 13:13:55.652051780 +0100
@@ -7634,6 +7634,8 @@
/* Output the objects themselves. */
offset = 0;
+ bool merge_strings = (block->sect->common.flags & SECTION_MERGE)
+ && (block->sect->common.flags & SECTION_STRINGS);
FOR_EACH_VEC_ELT (*block->objects, i, symbol)
{
/* Move to the object's offset, padding with zeros if necessary. */
@@ -7652,7 +7654,7 @@
HOST_WIDE_INT size;
decl = SYMBOL_REF_DECL (symbol);
assemble_constant_contents (DECL_INITIAL (decl), XSTR (symbol, 0),
- DECL_ALIGN (decl), false);
+ DECL_ALIGN (decl), merge_strings);
size = get_constant_size (DECL_INITIAL (decl));
offset += size;
@@ -7669,7 +7671,8 @@
{
HOST_WIDE_INT size;
decl = SYMBOL_REF_DECL (symbol);
- assemble_variable_contents (decl, XSTR (symbol, 0), false, false);
+ assemble_variable_contents (decl, XSTR (symbol, 0), false,
+ merge_strings);
size = tree_to_uhwi (DECL_SIZE_UNIT (decl));
offset += size;
if ((flag_sanitize & SANITIZE_ADDRESS)
More information about the Gcc-bugs
mailing list