From 73809d5e2f0597052c8951cfb717f0fb010b320b Mon Sep 17 00:00:00 2001 From: yroux Date: Mon, 11 Aug 2014 21:57:46 +0000 Subject: [PATCH] 2014-08-11 Michael Collison Backport from trunk r204251 2013-10-31 Richard Sandiford Yury Gribov PR sanitizer/58543 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary shadow pointer to avoid clobbering the main one. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro@213841 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc-4_8-branch/gcc/ChangeLog.linaro | 10 ++++++++++ gcc-4_8-branch/gcc/asan.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc-4_8-branch/gcc/ChangeLog.linaro b/gcc-4_8-branch/gcc/ChangeLog.linaro index ff0ce66867e..45587a4252b 100644 --- a/gcc-4_8-branch/gcc/ChangeLog.linaro +++ b/gcc-4_8-branch/gcc/ChangeLog.linaro @@ -1,3 +1,13 @@ +2014-08-11 Michael Collison + + Backport from trunk r204251 + 2013-10-31 Richard Sandiford + Yury Gribov + + PR sanitizer/58543 + * asan.c (asan_clear_shadow): Allocate a new vreg for temporary + shadow pointer to avoid clobbering the main one. + 2014-04-08 Yvan Roux * LINARO-VERSION: Bump version. diff --git a/gcc-4_8-branch/gcc/asan.c b/gcc-4_8-branch/gcc/asan.c index d68579b2e5e..89a0041867f 100644 --- a/gcc-4_8-branch/gcc/asan.c +++ b/gcc-4_8-branch/gcc/asan.c @@ -906,7 +906,7 @@ asan_clear_shadow (rtx shadow_mem, HOST_WIDE_INT len) gcc_assert ((len & 3) == 0); top_label = gen_label_rtx (); - addr = force_reg (Pmode, XEXP (shadow_mem, 0)); + addr = copy_to_mode_reg (Pmode, XEXP (shadow_mem, 0)); shadow_mem = adjust_automodify_address (shadow_mem, SImode, addr, 0); end = force_reg (Pmode, plus_constant (Pmode, addr, len)); emit_label (top_label); -- 2.11.4.GIT