From d64257a4ed4f91c1dd76bda5a975c8bfa070bc38 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 20 Mar 2018 14:00:48 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2asm.c | 6 ++++++ gcc/varasm.c | 7 ------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b90871616df..3a7ebc9e19d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2018-03-20 Jakub Jelinek + 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_3_neg_mask2): Rename to ... diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index cdb629f21d3..53fc0dab0b2 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 2b5c70c8e57..d7290ae534d 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) -- 2.30.2