This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc.dg/cpp/charconst.c vs. WCHAR_TYPE "long int"


On Friday 22 March 2002 21:24, Neil Booth wrote:
> Franz Sirl wrote:-
>
> > > >   c = L'very long';     /* { dg-warning "too long" "long wide
> > > > charconst" } */
> > > >
> > > > /home/fsirl/cvsx/gcc31/gcc/testsuite/gcc.dg/cpp/charconst.c: In
> > > > function `foo':
> > > > /home/fsirl/cvsx/gcc31/gcc/testsuite/gcc.dg/cpp/charconst.c:28:
> > > > warning: overflow in implicit constant conversion
> > > >
> > > > An additional (int) cast silences this extra warning, is this the
> > > > right thing to do?
> > >
> > > I don't think so.  If the warning is correct, then lets make the type a
> > > long.
> > >
> > > But first I'd like to understand why this is happening.  What is the
> > > type of wchar_t on your system and how many bytes is it?  What about
> > > int?  I can only see this happening if your int is 16 bits and wchar_t
> > > 32, or 32 / 64 respectively.
> >
> > WCHAR_TYPE_SIZE is 32, WCHAR_TYPE is "long int" and INT_TYPE_SIZE is 32
> > (see rs6000/sysv4.h and rs6000/rs6000.h).
>
> I don't understand why there is a diagnostic, then.  This is the same as
> Linux, no?  Why don't I see a diagnostic?

on x86-linux the sizes are the same, but WCHAR_TYPE is "int" not "long int" 
as on powerpc-linux. My guess was that the int<->long int promotion rules 
mandated this warning?

Franz.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]