]> granicus.if.org Git - clang/commit
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands
authorAlexander Potapenko <glider@google.com>
Thu, 10 Aug 2017 15:00:13 +0000 (15:00 +0000)
committerAlexander Potapenko <glider@google.com>
Thu, 10 Aug 2017 15:00:13 +0000 (15:00 +0000)
commit1956004b069fcc8a49f0ee364d9ed924ce096ac9
treee2d0dbe9795bb20ac312ade38aedc4ee49671416
parent00186ef1f9bf5aebb84d55889e4028fbf43061a4
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands

This implementation of SanitizerCoverage instrumentation inserts different
callbacks depending on constantness of operands:

  1. If both operands are non-const, then a usual
     __sanitizer_cov_trace_cmp[1248] call is inserted.
  2. If exactly one operand is const, then a
     __sanitizer_cov_trace_const_cmp[1248] call is inserted. The first
     argument of the call is always the constant one.
  3. If both operands are const, then no callback is inserted.

This separation comes useful in fuzzing when tasks like "find one operand
of the comparison in input arguments and replace it with the other one"
have to be done. The new instrumentation allows us to not waste time on
searching the constant operands in the input.

Patch by Victor Chibotaru.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310600 91177308-0d34-0410-b5e6-96231b3b80d8
docs/SanitizerCoverage.rst