[llvm] 77898a4 - Coverage: Fix iterated type for LineCoverageIterator
Duncan P. N. Exon Smith via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 16 14:40:03 PST 2021
Author: Duncan P. N. Exon Smith
Date: 2021-11-16T14:39:30-08:00
New Revision: 77898a4c0c8c6d2366909aee4e145b01c534162e
URL: https://github.com/llvm/llvm-project/commit/77898a4c0c8c6d2366909aee4e145b01c534162e
DIFF: https://github.com/llvm/llvm-project/commit/77898a4c0c8c6d2366909aee4e145b01c534162e.diff
LOG: Coverage: Fix iterated type for LineCoverageIterator
LineCoverageIterator is not providing access to a mutable object. Fix it
to iterate over `const LineCoverageStats` so that `operator->()`
compiles again after 6b9b86db9dd974585a5c71cf2e5231d1e3385f7c.
Added:
Modified:
llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
llvm/unittests/ProfileData/CoverageMappingTest.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
index 8f336c13af614..d3a5d44ce8ddc 100644
--- a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
+++ b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
@@ -693,8 +693,9 @@ class LineCoverageStats {
/// An iterator over the \c LineCoverageStats objects for lines described by
/// a \c CoverageData instance.
class LineCoverageIterator
- : public iterator_facade_base<
- LineCoverageIterator, std::forward_iterator_tag, LineCoverageStats> {
+ : public iterator_facade_base<LineCoverageIterator,
+ std::forward_iterator_tag,
+ const LineCoverageStats> {
public:
LineCoverageIterator(const CoverageData &CD)
: LineCoverageIterator(CD, CD.begin()->Line) {}
@@ -711,8 +712,6 @@ class LineCoverageIterator
const LineCoverageStats &operator*() const { return Stats; }
- LineCoverageStats &operator*() { return Stats; }
-
LineCoverageIterator &operator++();
LineCoverageIterator getEnd() const {
diff --git a/llvm/unittests/ProfileData/CoverageMappingTest.cpp b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
index f6f93cd819472..cc4c953e65351 100644
--- a/llvm/unittests/ProfileData/CoverageMappingTest.cpp
+++ b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
@@ -693,6 +693,9 @@ TEST_P(CoverageMappingTest, test_line_coverage_iterator) {
++Line;
}
ASSERT_EQ(11U, Line);
+
+ // Check that operator->() works / compiles.
+ ASSERT_EQ(1U, LineCoverageIterator(Data)->getLine());
}
TEST_P(CoverageMappingTest, uncovered_function) {
More information about the llvm-commits
mailing list