From 645ebf3767cd0300bd13971385806f6cec547f05 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Tue, 4 Nov 1997 21:56:24 +0000 Subject: [PATCH] c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. (yylex): Record wide strings using target endianness, not host. From-SVN: r16315 --- gcc/ChangeLog | 5 +++++ gcc/c-lex.c | 15 ++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 761c5a8..881ffd0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 4 13:40:35 1997 Doug Evans + + * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. + (yylex): Record wide strings using target endianness, not host. + Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com) * mn10200.h (ASM_OUTPUT_BSS): Delete. diff --git a/gcc/c-lex.c b/gcc/c-lex.c index bee6ce7..1ec8f23 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -35,6 +35,13 @@ Boston, MA 02111-1307, USA. */ #include +/* MULTIBYTE_CHARS support only works for native compilers. + ??? Ideally what we want is to model widechar support after + the current floating point support. */ +#ifdef CROSS_COMPILE +#undef MULTIBYTE_CHARS +#endif + #ifdef MULTIBYTE_CHARS #include #include @@ -1999,15 +2006,9 @@ yylex () bzero (widep + (len * WCHAR_BYTES), WCHAR_BYTES); #else { - union { long l; char c[sizeof (long)]; } u; - int big_endian; char *wp, *cp; - /* Determine whether host is little or big endian. */ - u.l = 1; - big_endian = u.c[sizeof (long) - 1]; - wp = widep + (big_endian ? WCHAR_BYTES - 1 : 0); - + wp = widep + (BYTES_BIG_ENDIAN ? WCHAR_BYTES - 1 : 0); bzero (widep, (p - token_buffer) * WCHAR_BYTES); for (cp = token_buffer + 1; cp < p; cp++) *wp = *cp, wp += WCHAR_BYTES; -- 2.7.4