As reported here: https://bugs.llvm.org/show_bug.cgi?id=34692
A non-defined enum with a backing type was always defaulting to
being treated as a signed type. IN the case where it IS defined,
the signed-ness of the actual items is used.
This patch uses the underlying type's signed-ness in the non-defined
case to test signed-comparision.
Explicitly referencing sign-conversion warnings here isn't really helpful. Maybe something more like "Incomplete enums without definitions can have an explicitly specified underlying type. Use that type here to compute the range."