@@ -239,16 +239,17 @@ bool ICF<ELFT>::constantEq(const InputSection *secA, ArrayRef<RelTy> ra,
239
239
const InputSection *secB, ArrayRef<RelTy> rb) {
240
240
if (ra.size () != rb.size ())
241
241
return false ;
242
- for (size_t i = 0 ; i < ra.size (); ++i) {
243
- if (ra[i].r_offset != rb[i].r_offset ||
244
- ra[i].getType (config->isMips64EL ) != rb[i].getType (config->isMips64EL ))
242
+ auto rai = ra.begin (), rae = ra.end (), rbi = rb.begin ();
243
+ for (; rai != rae; ++rai, ++rbi) {
244
+ if (rai->r_offset != rbi->r_offset ||
245
+ rai->getType (config->isMips64EL ) != rbi->getType (config->isMips64EL ))
245
246
return false ;
246
247
247
- uint64_t addA = getAddend<ELFT>(ra[i] );
248
- uint64_t addB = getAddend<ELFT>(rb[i] );
248
+ uint64_t addA = getAddend<ELFT>(*rai );
249
+ uint64_t addB = getAddend<ELFT>(*rbi );
249
250
250
- Symbol &sa = secA->file ->getRelocTargetSym (ra[i] );
251
- Symbol &sb = secB->file ->getRelocTargetSym (rb[i] );
251
+ Symbol &sa = secA->file ->getRelocTargetSym (*rai );
252
+ Symbol &sb = secB->file ->getRelocTargetSym (*rbi );
252
253
if (&sa == &sb) {
253
254
if (addA == addB)
254
255
continue ;
@@ -336,10 +337,11 @@ bool ICF<ELFT>::variableEq(const InputSection *secA, ArrayRef<RelTy> ra,
336
337
const InputSection *secB, ArrayRef<RelTy> rb) {
337
338
assert (ra.size () == rb.size ());
338
339
339
- for (size_t i = 0 ; i < ra.size (); ++i) {
340
+ auto rai = ra.begin (), rae = ra.end (), rbi = rb.begin ();
341
+ for (; rai != rae; ++rai, ++rbi) {
340
342
// The two sections must be identical.
341
- Symbol &sa = secA->file ->getRelocTargetSym (ra[i] );
342
- Symbol &sb = secB->file ->getRelocTargetSym (rb[i] );
343
+ Symbol &sa = secA->file ->getRelocTargetSym (*rai );
344
+ Symbol &sb = secB->file ->getRelocTargetSym (*rbi );
343
345
if (&sa == &sb)
344
346
continue ;
345
347
0 commit comments