Class Mem has operator< which is used for inserts into various data structures, like sets and maps. However, there exist objects a and b of class Mem where neither a < b, b < a, nor a == b. This happens when there's a memory reference like (%rdi) of size 8 and another (%rdi) of size 16. The parent class, Operand, has a correct operator< that works in all situations. The fix should be to just remove Mem's copy of this operator.
Class Mem has operator< which is used for inserts into various data structures, like sets and maps. However, there exist objects
a
andb
of class Mem where neithera < b
,b < a
, nora == b
. This happens when there's a memory reference like(%rdi)
of size 8 and another(%rdi)
of size 16. The parent class, Operand, has a correctoperator<
that works in all situations. The fix should be to just remove Mem's copy of this operator.