Skip to content

Commit

Permalink
Revert "[llvm-cov] Warn when -arch spec is missing/invalid for univer…
Browse files Browse the repository at this point in the history
…sal binary"

This reverts commit b81d4bf.

It's causing some bots to fail to build due to: "error: no matching
function for call to ‘__iterator_category".
  • Loading branch information
vedantk committed Oct 13, 2020
1 parent b81d4bf commit 10b6d09
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 22 deletions.
3 changes: 1 addition & 2 deletions llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ enum class coveragemap_error {
unsupported_version,
truncated,
malformed,
decompression_failed,
invalid_or_missing_arch_specifier
decompression_failed
};

const std::error_category &coveragemap_category();
Expand Down
2 changes: 0 additions & 2 deletions llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -816,8 +816,6 @@ static std::string getCoverageMapErrString(coveragemap_error Err) {
return "Malformed coverage data";
case coveragemap_error::decompression_failed:
return "Failed to decompress coverage data (zlib)";
case coveragemap_error::invalid_or_missing_arch_specifier:
return "`-arch` specifier is invalid or missing for universal binary";
}
llvm_unreachable("A value of coveragemap_error has no message.");
}
Expand Down
16 changes: 0 additions & 16 deletions llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -950,18 +950,6 @@ loadBinaryFormat(std::unique_ptr<Binary> Bin, StringRef Arch) {
BytesInAddress, Endian);
}

/// Determine whether \p Arch is invalid or empty, given \p Bin.
static bool isArchSpecifierInvalidOrMissing(Binary *Bin, StringRef Arch) {
// If we have a universal binary and Arch doesn't identify any of its slices,
// it's user error.
if (auto *Universal = dyn_cast<MachOUniversalBinary>(Bin))
return none_of(Universal->objects(),
[Arch](const MachOUniversalBinary::ObjectForArch &Obj) {
return Obj.getArchFlagName() == Arch;
});
return false;
}

Expected<std::vector<std::unique_ptr<BinaryCoverageReader>>>
BinaryCoverageReader::create(
MemoryBufferRef ObjectBuffer, StringRef Arch,
Expand All @@ -982,10 +970,6 @@ BinaryCoverageReader::create(
return BinOrErr.takeError();
std::unique_ptr<Binary> Bin = std::move(BinOrErr.get());

if (isArchSpecifierInvalidOrMissing(Bin.get(), Arch))
return make_error<CoverageMapError>(
coveragemap_error::invalid_or_missing_arch_specifier);

// MachO universal binaries which contain archives need to be treated as
// archives, not as regular binaries.
if (auto *Universal = dyn_cast<MachOUniversalBinary>(Bin.get())) {
Expand Down
3 changes: 1 addition & 2 deletions llvm/test/tools/llvm-cov/universal-binary.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@ int main(int argc, const char *argv[]) {}
// COMBINED: showTemplateInstantiations.cpp
// COMBINED-NEXT: universal-binary.c

// RUN: not llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -path-equivalence=/tmp,%S %s 2>&1 | FileCheck --check-prefix=WRONG-ARCH %s
// RUN: not llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -path-equivalence=/tmp,%S %s -arch i386 2>&1 | FileCheck --check-prefix=WRONG-ARCH %s
// WRONG-ARCH: Failed to load coverage: `-arch` specifier is invalid or missing for universal binary
// WRONG-ARCH: Failed to load coverage

// RUN: not llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -path-equivalence=/tmp,%S %s -arch definitly_a_made_up_architecture 2>&1 | FileCheck --check-prefix=MADE-UP-ARCH %s
// MADE-UP-ARCH: Unknown architecture: definitly_a_made_up_architecture
Expand Down

0 comments on commit 10b6d09

Please sign in to comment.