diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-03-20 14:00:48 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-03-20 14:00:48 +0100 |
commit | d64257a4ed4f91c1dd76bda5a975c8bfa070bc38 (patch) | |
tree | 70eb1d2a137dab20569fdce0565b0be498f79ea7 | |
parent | d9bf40a181b32e4d5e581ec10d48803ea4a43f9d (diff) | |
download | gcc-d64257a4ed4f91c1dd76bda5a975c8bfa070bc38.zip gcc-d64257a4ed4f91c1dd76bda5a975c8bfa070bc38.tar.gz gcc-d64257a4ed4f91c1dd76bda5a975c8bfa070bc38.tar.bz2 |
re PR target/84990 (Boostrap broken with --enable-checking=release and Ada)
PR target/84990
* dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
flag_section_anchors.
* varasm.c (use_blocks_for_decl_p): Remove hack for
dw2_force_const_mem.
From-SVN: r258681
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2asm.c | 6 | ||||
-rw-r--r-- | gcc/varasm.c | 7 |
3 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b908716..3a7ebc9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2018-03-20 Jakub Jelinek <jakub@redhat.com> + PR target/84990 + * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off + flag_section_anchors. + * varasm.c (use_blocks_for_decl_p): Remove hack for + dw2_force_const_mem. + PR target/84845 * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename to ... diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index cdb629f..53fc0da 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -973,7 +973,13 @@ dw2_output_indirect_constant_1 (const char *sym, tree id) unsigned int save_flag_sanitize = flag_sanitize; flag_sanitize &= ~(SANITIZE_ADDRESS | SANITIZE_USER_ADDRESS | SANITIZE_KERNEL_ADDRESS); + /* And also temporarily disable -fsection-anchors. These indirect constants + are never referenced from code, so it doesn't make any sense to aggregate + them in blocks. */ + int save_flag_section_anchors = flag_section_anchors; + flag_section_anchors = 0; assemble_variable (decl, 1, 1, 1); + flag_section_anchors = save_flag_section_anchors; flag_sanitize = save_flag_sanitize; assemble_integer (sym_ref, POINTER_SIZE_UNITS, POINTER_SIZE, 1); diff --git a/gcc/varasm.c b/gcc/varasm.c index 2b5c70c..d7290ae 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1253,13 +1253,6 @@ use_blocks_for_decl_p (tree decl) if (!VAR_P (decl) && TREE_CODE (decl) != CONST_DECL) return false; - /* Detect decls created by dw2_force_const_mem. Such decls are - special because DECL_INITIAL doesn't specify the decl's true value. - dw2_output_indirect_constants will instead call assemble_variable - with dont_output_data set to 1 and then print the contents itself. */ - if (DECL_INITIAL (decl) == decl) - return false; - /* If this decl is an alias, then we don't want to emit a definition. */ if (VAR_P (decl) |