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
This commit is contained in:
Jakub Jelinek 2018-03-22 09:32:12 +01:00 committed by Jakub Jelinek
parent 08ad2797c6
commit f13ed3ed23
3 changed files with 17 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2018-03-22 Jakub Jelinek <jakub@redhat.com>
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 <joseph@codesourcery.com>
* doc/extend.texi (__builtin_tgmath): Document when complex

View file

@ -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;
}

View file

@ -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)