Когда я включил флаг предупреждения gcc Wsign-Compare для компиляции следующего устаревшего кода:
else if ((d_tag_utype) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
l_info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
+ DT_VERSIONTAGNUM] = dyn;
Компилятор выдает мне предупреждение в первой строке:
../../dynamic_link.h:89:60: warning: comparison of promoted ~unsigned with constant [-Wsign-compare]
else if ((d_tag_utype) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
DT_EXTRANUM является константой, определенной как 3, и "d_tag_utype => uint64_t"
Я также пытался преобразовать "DT_EXTRANUM" в (d_tag_utype) или (uint64_t), такая же жалоба.
Есть идеи, на что это действительно жалуется?