Revert "[libFuzzer] Port to Windows"

This reverts commit r340860 due to failing tests.

llvm-svn: 340867
This commit is contained in:
Matt Morehouse 2018-08-28 19:07:24 +00:00
parent 06ed91a16b
commit 0fb860039c
2 changed files with 6 additions and 35 deletions

View File

@ -273,15 +273,9 @@ Function *SanitizerCoverageModule::CreateInitCallsForSections(
auto SecStart = SecStartEnd.first;
auto SecEnd = SecStartEnd.second;
Function *CtorFunc;
auto SecStartPtr = IRB.CreatePointerCast(SecStart, Ty);
// Account for the fact that on windows-msvc __start_* symbols actually
// point to a uint64_t before the start of the array.
if (TargetTriple.getObjectFormat() == Triple::COFF)
SecStartPtr = IRB.CreateAdd(SecStartPtr,
ConstantInt::get(IntptrTy, sizeof(uint64_t)));
std::tie(CtorFunc, std::ignore) = createSanitizerCtorAndInitFunctions(
M, SanCovModuleCtorName, InitFunctionName, {Ty, Ty},
{SecStartPtr, IRB.CreatePointerCast(SecEnd, Ty)});
{IRB.CreatePointerCast(SecStart, Ty), IRB.CreatePointerCast(SecEnd, Ty)});
if (TargetTriple.supportsCOMDAT()) {
// Use comdat to dedup CtorFunc.
@ -403,15 +397,9 @@ bool SanitizerCoverageModule::runOnModule(Module &M) {
Function *InitFunction = declareSanitizerInitFunction(
M, SanCovPCsInitName, {IntptrPtrTy, IntptrPtrTy});
IRBuilder<> IRBCtor(Ctor->getEntryBlock().getTerminator());
auto SecStartPtr = IRB.CreatePointerCast(SecStartEnd.first, IntptrPtrTy);
// Account for the fact that on windows-msvc __start_pc_table actually
// points to a uint64_t before the start of the PC table.
if (TargetTriple.getObjectFormat() == Triple::COFF)
SecStartPtr = IRB.CreateAdd(SecStartPtr,
ConstantInt::get(IntptrTy, sizeof(uint64_t)));
IRBCtor.CreateCall(
InitFunction,
{SecStartPtr, IRB.CreatePointerCast(SecStartEnd.second, IntptrPtrTy)});
IRBCtor.CreateCall(InitFunction,
{IRB.CreatePointerCast(SecStartEnd.first, IntptrPtrTy),
IRB.CreatePointerCast(SecStartEnd.second, IntptrPtrTy)});
}
// We don't reference these arrays directly in any of our runtime functions,
// so we need to prevent them from being dead stripped.
@ -821,13 +809,8 @@ void SanitizerCoverageModule::InjectCoverageAtBlock(Function &F, BasicBlock &BB,
std::string
SanitizerCoverageModule::getSectionName(const std::string &Section) const {
if (TargetTriple.getObjectFormat() == Triple::COFF) {
if (Section == SanCovCountersSectionName)
return ".SCOV$CM";
if (Section == SanCovPCsSectionName)
return ".SCOVP$M";
return ".SCOV$GM"; // For SanCovGuardsSectionName.
}
if (TargetTriple.getObjectFormat() == Triple::COFF)
return ".SCOV$M";
if (TargetTriple.isOSBinFormatMachO())
return "__DATA,__" + Section;
return "__" + Section;

View File

@ -1,12 +0,0 @@
; Checks that the PC and 8-bit Counter Arrays are placed in their own sections in COFF binaries.
; RUN: opt < %s -sancov -sanitizer-coverage-level=1 -sanitizer-coverage-inline-8bit-counters=1 -sanitizer-coverage-pc-table=1 -S | FileCheck %s
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.14.26433"
define void @foo() {
entry:
ret void
}
; CHECK-DAG: section ".SCOV{{\$}}CM",
; CHECK-DAG: section ".SCOVP{{\$}}M",