This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/19920] [4.0 Regression] build broken on several targets due to recent 'DC' type update to libgcc2
- From: "schlie at comcast dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Feb 2005 15:56:08 -0000
- Subject: [Bug middle-end/19920] [4.0 Regression] build broken on several targets due to recent 'DC' type update to libgcc2
- References: <20050212040652.19920.schlie@comcast.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From schlie at comcast dot net 2005-02-16 15:56 -------
Subject: Re: [4.0 Regression] build broken on
several targets due to recent 'DC' type update to libgcc2
>> Like ...?
>
> Here's one (target: h8300-rtems4.7):
> ../../../../../../gcc-4.0.0/newlib/libm/math/ef_remainder.c:49: warning: left
> shift count >= width of type
>
> There are dozens of similar warnings in my build-log.
> Having a look into newlib shows all of these warnings to be related to
> sizeof(int) vs. sizeof(long) vs. sizeof(void*), not to float/double.
> I know newlib, is partially broken, in assuming
> sizeof(int)==sizeof(long)==sizeof(void*)==32bit, but ...
>
> ... I have several local patches to newlib applied, which are supposed to fix
> them. So, unless something has changed these sizes, I probably didn't work
> carefully enough.
Although there may be remaining problems in libgcc2; it would seem
prudent for newlib (and possibly even libgcc2 as may be required) to
be more explicit, i.e. use int16, int32, etc. vs. short, int, long; or
conditionally declare types based on sizeof(), when a type needs to be
a certain or relative size for the code to work as intended.
(not great, but good to know it doesn't seem to be a libgcc2 problem)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19920