[PATCH] D113788: IR: Fix const-correctness of SwitchInst::CaseIterator and CaseHandle
Duncan P. N. Exon Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 12 14:17:06 PST 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa678c6743f53: IR: Fix const-correctness of SwitchInst::CaseIterator and CaseHandle (authored by dexonsmith).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D113788/new/
https://reviews.llvm.org/D113788
Files:
llvm/include/llvm/IR/Instructions.h
Index: llvm/include/llvm/IR/Instructions.h
===================================================================
--- llvm/include/llvm/IR/Instructions.h
+++ llvm/include/llvm/IR/Instructions.h
@@ -3350,14 +3350,14 @@
CaseHandle(SwitchInst *SI, ptrdiff_t Index) : CaseHandleImpl(SI, Index) {}
/// Sets the new value for current case.
- void setValue(ConstantInt *V) {
+ void setValue(ConstantInt *V) const {
assert((unsigned)Index < SI->getNumCases() &&
"Index out the number of cases.");
SI->setOperand(2 + Index*2, reinterpret_cast<Value*>(V));
}
/// Sets the new successor for current case.
- void setSuccessor(BasicBlock *S) {
+ void setSuccessor(BasicBlock *S) const {
SI->setSuccessor(getSuccessorIndex(), S);
}
};
@@ -3366,7 +3366,7 @@
class CaseIteratorImpl
: public iterator_facade_base<CaseIteratorImpl<CaseHandleT>,
std::random_access_iterator_tag,
- CaseHandleT> {
+ const CaseHandleT> {
using SwitchInstT = typename CaseHandleT::SwitchInstType;
CaseHandleT Case;
@@ -3425,7 +3425,6 @@
assert(Case.SI == RHS.Case.SI && "Incompatible operators.");
return Case.Index < RHS.Case.Index;
}
- CaseHandleT &operator*() { return Case; }
const CaseHandleT &operator*() const { return Case; }
};
@@ -3520,7 +3519,7 @@
const_cast<const SwitchInst *>(this)->findCaseValue(C)->getCaseIndex());
}
ConstCaseIt findCaseValue(const ConstantInt *C) const {
- ConstCaseIt I = llvm::find_if(cases(), [C](ConstCaseHandle &Case) {
+ ConstCaseIt I = llvm::find_if(cases(), [C](const ConstCaseHandle &Case) {
return Case.getCaseValue() == C;
});
if (I != case_end())
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113788.386952.patch
Type: text/x-patch
Size: 1830 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211112/0743a38f/attachment.bin>
More information about the llvm-commits
mailing list