[PATCH] D84913: [libFuzzer] Enable for SystemZ

Ilya Leoshkevich via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 30 00:51:38 PDT 2020


iii created this revision.
Herald added subscribers: llvm-commits, Sanitizers, hiraditya, mgorny.
Herald added projects: Sanitizers, LLVM.
iii requested review of this revision.

- Add SystemZ to the list of supported architectures.

- Fix endianness issue in ForEachNonZeroByte().

- Fix types of __stop* and __start* symbols. Adapt tests.

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.

- 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.

iReviewers: kcc morehouse uweigand jonpa


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D84913

Files:
  compiler-rt/cmake/config-ix.cmake
  compiler-rt/lib/fuzzer/FuzzerTracePC.h
  compiler-rt/test/fuzzer/coverage.test
  compiler-rt/test/fuzzer/msan.test
  compiler-rt/test/fuzzer/swap-cmp.test
  llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  llvm/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll
  llvm/test/Instrumentation/SanitizerCoverage/inline-bool-flag.ll
  llvm/test/Instrumentation/SanitizerCoverage/tracing.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84913.281816.patch
Type: text/x-patch
Size: 7602 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200730/a404efd1/attachment.bin>


More information about the llvm-commits mailing list