aboutsummaryrefslogtreecommitdiff
path: root/gcc/asan.c
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-10-31 12:10:01 +0000
committerYury Gribov <ygribov@gcc.gnu.org>2013-10-31 12:10:01 +0000
commit57d4d653e8199c53202b6a2d2a8e2b6c4644448d (patch)
tree7438abbee1b4ca771f0ec316e0e4cd9ad092194f /gcc/asan.c
parent7dccc537ba7927aceef585179e2e3f6132029c96 (diff)
downloadgcc-57d4d653e8199c53202b6a2d2a8e2b6c4644448d.zip
gcc-57d4d653e8199c53202b6a2d2a8e2b6c4644448d.tar.gz
gcc-57d4d653e8199c53202b6a2d2a8e2b6c4644448d.tar.bz2
re PR sanitizer/58543 (Invalid unpoisoning of stack redzones on ARM)
2013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com> Yury Gribov <y.gribov@samsung.com> PR sanitizer/58543 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary shadow pointer to avoid clobbering the main one. Co-Authored-By: Yury Gribov <y.gribov@samsung.com> From-SVN: r204251
Diffstat (limited to 'gcc/asan.c')
-rw-r--r--gcc/asan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/asan.c b/gcc/asan.c
index f2934b0..8139719 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -898,7 +898,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);