@@ -323,8 +323,9 @@ bool ICF<ELFT>::equalsConstant(const InputSection *a, const InputSection *b) {
323
323
324
324
const RelsOrRelas<ELFT> ra = a->template relsOrRelas <ELFT>();
325
325
const RelsOrRelas<ELFT> rb = b->template relsOrRelas <ELFT>();
326
- return ra.areRelocsRel () ? constantEq (a, ra.rels , b, rb.rels )
327
- : constantEq (a, ra.relas , b, rb.relas );
326
+ return ra.areRelocsRel () || rb.areRelocsRel ()
327
+ ? constantEq (a, ra.rels , b, rb.rels )
328
+ : constantEq (a, ra.relas , b, rb.relas );
328
329
}
329
330
330
331
// Compare two lists of relocations. Returns true if all pairs of
@@ -371,8 +372,9 @@ template <class ELFT>
371
372
bool ICF<ELFT>::equalsVariable(const InputSection *a, const InputSection *b) {
372
373
const RelsOrRelas<ELFT> ra = a->template relsOrRelas <ELFT>();
373
374
const RelsOrRelas<ELFT> rb = b->template relsOrRelas <ELFT>();
374
- return ra.areRelocsRel () ? variableEq (a, ra.rels , b, rb.rels )
375
- : variableEq (a, ra.relas , b, rb.relas );
375
+ return ra.areRelocsRel () || rb.areRelocsRel ()
376
+ ? variableEq (a, ra.rels , b, rb.rels )
377
+ : variableEq (a, ra.relas , b, rb.relas );
376
378
}
377
379
378
380
template <class ELFT > size_t ICF<ELFT>::findBoundary(size_t begin, size_t end) {
0 commit comments