diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-10-31 12:10:01 +0000 |
---|---|---|
committer | Yury Gribov <ygribov@gcc.gnu.org> | 2013-10-31 12:10:01 +0000 |
commit | 57d4d653e8199c53202b6a2d2a8e2b6c4644448d (patch) | |
tree | 7438abbee1b4ca771f0ec316e0e4cd9ad092194f | |
parent | 7dccc537ba7927aceef585179e2e3f6132029c96 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/asan.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fab5bc5..6efde54 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +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. + 2013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org> * lower-subreg.c (resolve_simple_move): Copy REG_INC note. @@ -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); |