From 90841d4302e804d0eafdd5e9565cda2d5ec166a8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 19 Mar 2018 21:48:39 +0100 Subject: [PATCH] re PR sanitizer/78651 (Incorrect exception handling when catch clause uses local class and PIC and sanitizer are active) PR sanitizer/78651 * dwarf2asm.c: Include fold-const.c. (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR of decl rather than decl itself. From-SVN: r258664 --- gcc/ChangeLog | 5 +++++ gcc/dwarf2asm.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 624bf15d94a8..9df89dcbca37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2018-03-19 Jakub Jelinek + PR sanitizer/78651 + * dwarf2asm.c: Include fold-const.c. + (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR + of decl rather than decl itself. + PR rtl-optimization/84643 * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index 2e108acc0d78..cdb629f21d34 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see #include "dwarf2.h" #include "function.h" #include "emit-rtl.h" +#include "fold-const.h" #ifndef XCOFF_DEBUGGING_INFO #define XCOFF_DEBUGGING_INFO 0 @@ -954,7 +955,7 @@ dw2_output_indirect_constant_1 (const char *sym, tree id) SET_DECL_ASSEMBLER_NAME (decl, id); DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; - DECL_INITIAL (decl) = decl; + DECL_INITIAL (decl) = build_fold_addr_expr (decl); TREE_READONLY (decl) = 1; TREE_STATIC (decl) = 1; -- 2.47.2