diff --git a/include/llvm/ProfileData/Coverage/CoverageMapping.h b/include/llvm/ProfileData/Coverage/CoverageMapping.h index 35267692fd6..02914cea7d4 100644 --- a/include/llvm/ProfileData/Coverage/CoverageMapping.h +++ b/include/llvm/ProfileData/Coverage/CoverageMapping.h @@ -290,6 +290,14 @@ struct FunctionRecord { FunctionRecord(StringRef Name, ArrayRef Filenames) : Name(Name), Filenames(Filenames.begin(), Filenames.end()) {} + FunctionRecord(FunctionRecord &&FR) + : Name(FR.Name), Filenames(std::move(FR.Filenames)), + CountedRegions(std::move(FR.CountedRegions)), + ExecutionCount(FR.ExecutionCount) {} + + FunctionRecord(const FunctionRecord &) = delete; + const FunctionRecord &operator=(const FunctionRecord &) = delete; + void pushRegion(CounterMappingRegion Region, uint64_t Count) { if (CountedRegions.empty()) ExecutionCount = Count; @@ -425,6 +433,9 @@ class CoverageMapping { CoverageMapping() : MismatchedFunctionCount(0) {} + CoverageMapping(const CoverageMapping &) = delete; + const CoverageMapping &operator=(const CoverageMapping &) = delete; + /// \brief Add a function record corresponding to \p Record. Error loadFunctionRecord(const CoverageMappingRecord &Record, IndexedInstrProfReader &ProfileReader); diff --git a/tools/llvm-cov/CoverageExporterJson.cpp b/tools/llvm-cov/CoverageExporterJson.cpp index 06dc176737a..1b5a1ac01c5 100644 --- a/tools/llvm-cov/CoverageExporterJson.cpp +++ b/tools/llvm-cov/CoverageExporterJson.cpp @@ -64,7 +64,7 @@ class CoverageExporterJson { raw_ostream &OS; /// \brief The full CoverageMapping object to export. - CoverageMapping Coverage; + const CoverageMapping &Coverage; /// \brief States that the JSON rendering machine can be in. enum JsonState { None, NonEmptyElement, EmptyElement };