Add support for ASan odr_indicator.
authorMaxim Ostapenko <m.ostapenko@samsung.com>
Fri, 2 Dec 2016 07:39:27 +0000 (07:39 +0000)
committerMaxim Ostapenko <chefmax@gcc.gnu.org>
Fri, 2 Dec 2016 07:39:27 +0000 (09:39 +0200)
commit84b0769e335819050ecdd86301a5f5d41fa5df8b
tree9fbdf0659d0c0d3375472bd8ec482b390381fa99
parentb06496b1617ffcaec0e82fd4cca9eae5e0301cd5
Add support for ASan odr_indicator.

config/

        * bootstrap-asan.mk: Replace LSAN_OPTIONS=detect_leaks=0 with
        ASAN_OPTIONS=detect_leaks=0:use_odr_indicator=1.

gcc/

        * asan.c (asan_global_struct): Refactor.
        (create_odr_indicator): New function.
        (asan_needs_odr_indicator_p): Likewise.
        (is_odr_indicator): Likewise.
        (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
        constructor.
        (asan_protect_global): Do not protect odr indicators.

gcc/c-family/

* c-attribs.c (asan odr indicator): New attribute.
(handle_asan_odr_indicator_attribute): New function.

gcc/testsuite/

        * c-c++-common/asan/no-redundant-odr-indicators-1.c: New test.

From-SVN: r243153
config/ChangeLog
config/bootstrap-asan.mk
gcc/ChangeLog
gcc/asan.c
gcc/c-family/ChangeLog
gcc/c-family/c-attribs.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/asan/no-redundant-odr-indicators-1.c [new file with mode: 0644]