https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715

--- Comment #35 from Martin Liška <marxin at gcc dot gnu.org> ---
Author: marxin
Date: Fri Nov 30 14:25:15 2018
New Revision: 266664

URL: https://gcc.gnu.org/viewcvs?rev=266664&root=gcc&view=rev
Log:
Make red zone size more flexible for stack variables (PR sanitizer/81715).

2018-11-30  Martin Liska  <mli...@suse.cz>

        PR sanitizer/81715
        * asan.c (asan_shadow_cst): Remove, partially transform
        into flush_redzone_payload.
        (RZ_BUFFER_SIZE): New.
        (struct asan_redzone_buffer): New.
        (asan_redzone_buffer::emit_redzone_byte): Likewise.
        (asan_redzone_buffer::flush_redzone_payload): Likewise.
        (asan_redzone_buffer::flush_if_full): Likewise.
        (asan_emit_stack_protection): Use asan_redzone_buffer class
        that is responsible for proper aligned stores and flushing
        of shadow memory payload.
        * asan.h (ASAN_MIN_RED_ZONE_SIZE): New.
        (asan_var_and_redzone_size): Likewise.
        * cfgexpand.c (expand_stack_vars): Use smaller alignment
        (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory
        for automatic variables more compact.
2018-11-30  Martin Liska  <mli...@suse.cz>

        PR sanitizer/81715
        * c-c++-common/asan/asan-stack-small.c: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/asan/asan-stack-small.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/asan.c
    trunk/gcc/asan.h
    trunk/gcc/cfgexpand.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to