From: Jakub Jelinek Date: Thu, 22 Mar 2018 08:32:12 +0000 (+0100) Subject: re PR sanitizer/85018 (Many sanitizer tests ICE since r258681) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f13ed3ed23d38d801223b20b2e01140183394477;p=gcc.git re PR sanitizer/85018 (Many sanitizer tests ICE since r258681) PR sanitizer/85018 * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to decl at the end. * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, adjust the comment. From-SVN: r258757 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 90c558c0638..869caa2fe6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2018-03-22 Jakub Jelinek + + PR sanitizer/85018 + * dwarf2asm.c (dw2_output_indirect_constant_1): Set + DECL_INITIAL (decl) to decl at the end. + * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, + adjust the comment. + 2018-03-21 Joseph Myers * doc/extend.texi (__builtin_tgmath): Document when complex diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index 53fc0dab0b2..93577d141ab 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -982,6 +982,9 @@ dw2_output_indirect_constant_1 (const char *sym, tree id) flag_section_anchors = save_flag_section_anchors; flag_sanitize = save_flag_sanitize; assemble_integer (sym_ref, POINTER_SIZE_UNITS, POINTER_SIZE, 1); + /* The following is a hack recognized by use_blocks_for_decl_p to disable + section anchor handling of the decl. */ + DECL_INITIAL (decl) = decl; return 0; } diff --git a/gcc/varasm.c b/gcc/varasm.c index d7290ae534d..d24bac4ad8f 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1253,6 +1253,12 @@ use_blocks_for_decl_p (tree decl) if (!VAR_P (decl) && TREE_CODE (decl) != CONST_DECL) return false; + /* DECL_INITIAL (decl) set to decl is a hack used for some decls that + are never used from code directly and we never want object block handling + for those. */ + 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)