mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 07:17:36 +00:00
Fix problem with r204836
In CallInst, op_end() points at the callee, which we don't want to iterate over when just iterating over arguments. Now take this into account when returning a iterator_range from arg_operands. Similar reasoning for InvokeInst. Also adds a unit test to verify this actually works as expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204851 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1297,12 +1297,14 @@ public:
|
||||
|
||||
/// arg_operands - iteration adapter for range-for loops.
|
||||
iterator_range<op_iterator> arg_operands() {
|
||||
return iterator_range<op_iterator>(op_begin(), op_end());
|
||||
// The last operand in the op list is the callee - it's not one of the args
|
||||
// so we don't want to iterate over it.
|
||||
return iterator_range<op_iterator>(op_begin(), op_end() - 1);
|
||||
}
|
||||
|
||||
/// arg_operands - iteration adapter for range-for loops.
|
||||
iterator_range<const_op_iterator> arg_operands() const {
|
||||
return iterator_range<const_op_iterator>(op_begin(), op_end());
|
||||
return iterator_range<const_op_iterator>(op_begin(), op_end() - 1);
|
||||
}
|
||||
|
||||
/// \brief Wrappers for getting the \c Use of a call argument.
|
||||
@@ -2954,12 +2956,12 @@ public:
|
||||
|
||||
/// arg_operands - iteration adapter for range-for loops.
|
||||
iterator_range<op_iterator> arg_operands() {
|
||||
return iterator_range<op_iterator>(op_begin(), op_end());
|
||||
return iterator_range<op_iterator>(op_begin(), op_end() - 3);
|
||||
}
|
||||
|
||||
/// arg_operands - iteration adapter for range-for loops.
|
||||
iterator_range<const_op_iterator> arg_operands() const {
|
||||
return iterator_range<const_op_iterator>(op_begin(), op_end());
|
||||
return iterator_range<const_op_iterator>(op_begin(), op_end() - 3);
|
||||
}
|
||||
|
||||
/// \brief Wrappers for getting the \c Use of a invoke argument.
|
||||
|
||||
Reference in New Issue
Block a user