Looking at gcc/toplev.h and gcc/toplev.c I have found the following two variants of the same
function once in the header and once in the definition fine.

extern inline int
floor_log2 (unsigned HOST_WIDE_INT x)
{
  return x ? HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x) : -1;
}

and again the same function:

int
floor_log2 (unsigned HOST_WIDE_INT x)
{
  int t = 0;

  if (x == 0)
    return -1;

#ifdef CLZ_HWI
  t = HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x);
#else
  ....
#endif

  return t;
}

At first glace it seems that the .c variants represents hand optimized C code, which get's never called. I'm quite convinced that it should be just removed, since it's never used
due to overschadowing by the .h variant

Reply via email to