[Bug sanitizer/56330] ICE: verify_gimple failed: gimple_bb (stmt) is set to a wrong basic block with -fsanitize=address

dodji at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Feb 16 09:33:00 GMT 2013


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



More information about the Gcc-bugs mailing list