aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorMaxim Ostapenko <m.ostapenko@samsung.com>2016-06-10 12:57:14 +0000
committerMaxim Ostapenko <chefmax@gcc.gnu.org>2016-06-10 15:57:14 +0300
commit7cfa10f33c57e7de87517360e42700bbfc97ef58 (patch)
tree7eeb6904969950f8b4667881368ec5fae1d03df8 /gcc/varasm.c
parentaade5c72c6adb395d2bddb0d08c6626d537a1714 (diff)
downloadgcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.zip
gcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.tar.gz
gcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.tar.bz2
re PR sanitizer/71480 (ASan should align string constants to shadow granularity.)
2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/71480 * varasm.c (place_block_symbol): Adjust alignment for asan protected STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P. * c-c++-common/asan/pr71480.c: New test. From-SVN: r237306
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 4a7124e..de8bcd6 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -7201,7 +7201,11 @@ place_block_symbol (rtx symbol)
if ((flag_sanitize & SANITIZE_ADDRESS)
&& TREE_CODE (DECL_INITIAL (decl)) == STRING_CST
&& asan_protect_global (DECL_INITIAL (decl)))
- size += asan_red_zone_size (size);
+ {
+ size += asan_red_zone_size (size);
+ alignment = MAX (alignment,
+ ASAN_RED_ZONE_SIZE * BITS_PER_UNIT);
+ }
}
else
{