From: wmi <wmi@138bc75d-0d04-0410-961f-82ee72b054a4> It appeared that we were forgetting to protect global variables that are already 32 bytes aligned. Fixed thus.
* varasm.c (assemble_variable): Set asan_protected even for decls that are already ASAN_RED_ZONE_SIZE or more bytes aligned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/asan@192830 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.asan | 15 +++++++++++++++ gcc/varasm.c | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog.asan b/gcc/ChangeLog.asan index 3da0a0b..57670f7 100644 --- a/gcc/ChangeLog.asan +++ b/gcc/ChangeLog.asan @@ -1,3 +1,18 @@ +2012-10-25 Wei Mi <w...@google.com> + + * varasm.c (assemble_variable): Set asan_protected even + for decls that are already ASAN_RED_ZONE_SIZE or more + bytes aligned. + +2012-10-19 Diego Novillo <dnovi...@google.com> + + Merge from trunk rev 192612. + +2012-10-18 Xinliang David Li <davi...@google.com> + + * asan.c (asan_init_shadow_ptr_types): change shadow type + to signed type. + 2012-10-18 Jakub Jelinek <ja...@redhat.com> * asan.c (build_check_stmt): Unshare base. diff --git a/gcc/varasm.c b/gcc/varasm.c index 8a533ed..641ce0c 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1991,11 +1991,11 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED, align_variable (decl, dont_output_data); if (flag_asan - && asan_protect_global (decl) - && DECL_ALIGN (decl) < ASAN_RED_ZONE_SIZE * BITS_PER_UNIT) + && asan_protect_global (decl)) { asan_protected = true; - DECL_ALIGN (decl) = ASAN_RED_ZONE_SIZE * BITS_PER_UNIT; + DECL_ALIGN (decl) = MAX (DECL_ALIGN (decl), + ASAN_RED_ZONE_SIZE * BITS_PER_UNIT); } set_mem_align (decl_rtl, DECL_ALIGN (decl)); -- 1.7.11.7