http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56330



--- Comment #8 from Dodji Seketeli <dodji at gcc dot gnu.org> 2013-02-16 
09:33:01 UTC ---

Author: dodji

Date: Sat Feb 16 09:32:56 2013

New Revision: 196102



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196102

Log:

[asan] Fix for PR asan/56330



gcc/

    * asan.c (get_mem_refs_of_builtin_call): White space and style

    cleanup.

    (instrument_mem_region_access): Do not forget to always put

    instrumentation of the of 'base' and 'base + len' in a "if (len !=

    0) statement, even for cases where either 'base' or 'base + len'

    are not instrumented -- because they have been previously

    instrumented.  Simplify the logic by putting all the statements

    instrument 'base + len' inside a sequence, and then insert that

    sequence right before the current insertion point.  Then, to

    instrument 'base + len', just get an iterator on that statement.

    And do not forget to update the pointer to iterator the function

    received as argument.



gcc/testsuite/



    * c-c++-common/asan/no-redundant-instrumentation-4.c: New test file.

    * c-c++-common/asan/no-redundant-instrumentation-5.c: Likewise.

    * c-c++-common/asan/no-redundant-instrumentation-6.c: Likewise.

    * c-c++-common/asan/no-redundant-instrumentation-7.c: Likewise.

    * c-c++-common/asan/no-redundant-instrumentation-8.c: Likewise.

    * c-c++-common/asan/pr56330.c: Likewise.

    * c-c++-common/asan/no-redundant-instrumentation-1.c (test1):

    Ensure the size argument of __builtin_memcpy is a constant.



Added:

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-4.c

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-5.c

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-6.c

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-7.c

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-8.c

    trunk/gcc/testsuite/c-c++-common/asan/pr56330.c

Modified:

    trunk/gcc/ChangeLog

    trunk/gcc/asan.c

    trunk/gcc/testsuite/ChangeLog

    trunk/gcc/testsuite/c-c++-common/asan/no-redundant-instrumentation-1.c

Reply via email to