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]

may have found a wrong warning?


Hi,

i just played around a little with wchar_t. I am not sure, but i think i got a warning that did not make any sense at all. Here's the small test:

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int
main (void)
{
   wchar_t a = L'©';      /* The copyright sign */

   setlocale (LC_ALL, "");
   printf ("char was %lc\n", a);

   return 0;
}

if i compile this with my gcc (GCC) 3.3.4 (pre 3.3.5 20040809) i got the following warning:

warning: character constant too long for its type

well, my linux uses UTF-8 and i know that the copyright sign is a 2byte multibyte. But if i use it with a wchar_t and the L modifier, i thought the compiler would change this multibyte to a correct 32bit unicode value? Well, at least the program works as expected. It prints the copyright sign.

Best regards
   Georg Steffers

Attachment: pgp00000.pgp
Description: PGP signature


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