This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc.dg/cpp/charconst.c vs. WCHAR_TYPE "long int"
On Friday 22 March 2002 20:38, Neil Booth wrote:
> Franz Sirl wrote:-
>
> > Hi,
> >
> > the testcase gcc.dg/cpp/charconst.c fails on powerpc-linux-gnu because of
> > an extra warning on this line:
> >
> > 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).
Franz.