Jerry Quinn <[email protected]> writes:
> I just tried to bootstrap the gcc-in-cxx branch, but it fails in stage
> 2. If I expand the macros, the code looks OK to me.
>
> Any suggestions on how to go about tracking this down (if someone else
> doesn't get there first)?
Tobias Schlüter saw the same thing; I don't know why I don't see it.
> ../.././gcc/config/i386/i386.c:3282: error: comparison is always true
> due to limited range of data type
#define IN_RANGE(VALUE, LOWER, UPPER) \
((unsigned HOST_WIDE_INT) (VALUE) - (unsigned HOST_WIDE_INT) (LOWER) \
<= (unsigned HOST_WIDE_INT) (UPPER) - (unsigned HOST_WIDE_INT) (LOWER))
enum processor_type
{
PROCESSOR_I386 = 0, /* 80386 */
PROCESSOR_I486, /* 80486DX, 80486SX, 80486DX[24] */
PROCESSOR_PENTIUM,
PROCESSOR_PENTIUMPRO,
PROCESSOR_GEODE,
PROCESSOR_K6,
PROCESSOR_ATHLON,
PROCESSOR_PENTIUM4,
PROCESSOR_K8,
PROCESSOR_NOCONA,
PROCESSOR_CORE2,
PROCESSOR_GENERIC32,
PROCESSOR_GENERIC64,
PROCESSOR_AMDFAM10,
PROCESSOR_max
};
enum processor_type ix86_arch;
gcc_assert (IN_RANGE (ix86_arch, 0, 255));
It all looks fine to me.
The way to track this down is to run g++ with the -v option, run gdb on
cc1plus, break on warning when opt == OPT_Wtype_limits, and see where
the warning is coming from and why.
Ian