[all-commits] [llvm/llvm-project] a4e537: [libFuzzer] Fix endianness issue in ForEachNonZero...

Ilya Leoshkevich via All-commits all-commits at lists.llvm.org
Tue Aug 4 12:53:48 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a4e537d9c47aa378a24636e2d90d208389ad93ab
      https://github.com/llvm/llvm-project/commit/a4e537d9c47aa378a24636e2d90d208389ad93ab
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2020-08-04 (Tue, 04 Aug 2020)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerTracePC.h
    M compiler-rt/lib/fuzzer/FuzzerUtil.h

  Log Message:
  -----------
  [libFuzzer] Fix endianness issue in ForEachNonZeroByte()

The usage pattern of Bundle variable assumes the machine is little
endian, which is not the case on SystemZ. Fix by converting Bundle to
little-endian when necessary.


  Commit: 153df1373e5d3e0f16464233a3c17feb8a9eb3e9
      https://github.com/llvm/llvm-project/commit/153df1373e5d3e0f16464233a3c17feb8a9eb3e9
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2020-08-04 (Tue, 04 Aug 2020)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
    M llvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll
    M llvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll
    M llvm/test/Instrumentation/SanitizerCoverage/tracing.ll

  Log Message:
  -----------
  [SanitizerCoverage] Fix types of __stop* and __start* symbols

If a section is supposed to hold elements of type T, then the
corresponding CreateSecStartEnd()'s Ty parameter represents T*.
Forwarding it to GlobalVariable constructor causes the resulting
GlobalVariable's type to be T*, and its SSA value type to be T**, which
is one indirection too many. This issue is mostly masked by pointer
casts, however, the global variable still gets an incorrect alignment,
which causes SystemZ to choose wrong instructions to access the
section.


  Commit: ea9b82da4180550c3ddc5e883c589474af9462b7
      https://github.com/llvm/llvm-project/commit/ea9b82da4180550c3ddc5e883c589474af9462b7
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2020-08-04 (Tue, 04 Aug 2020)

  Changed paths:
    M compiler-rt/cmake/config-ix.cmake
    M compiler-rt/test/fuzzer/coverage.test
    M compiler-rt/test/fuzzer/msan.test
    M compiler-rt/test/fuzzer/swap-cmp.test

  Log Message:
  -----------
  [libFuzzer] Enable for SystemZ

* Add SystemZ to the list of supported architectures.

* XFAIL a few tests.

Coverage reporting is broken, and is not easy to fix (see comment in
coverage.test). Interaction with sanitizers needs to be investigated
more thoroughly, since they appear to reduce coverage in certain cases.


Compare: https://github.com/llvm/llvm-project/compare/47f7174ffa71...ea9b82da4180


More information about the All-commits mailing list