(yylex): Record wide strings using target endianness, not host.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16315
138bc75d-0d04-0410-961f-
82ee72b054a4
+Tue Nov 4 13:40:35 1997 Doug Evans <devans@canuck.cygnus.com>
+
+ * 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.
Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com)
* mn10200.h (ASM_OUTPUT_BSS): Delete.
+/* 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 <stdlib.h>
#include <locale.h>
#ifdef MULTIBYTE_CHARS
#include <stdlib.h>
#include <locale.h>
bzero (widep + (len * WCHAR_BYTES), WCHAR_BYTES);
#else
{
bzero (widep + (len * WCHAR_BYTES), WCHAR_BYTES);
#else
{
- union { long l; char c[sizeof (long)]; } u;
- int big_endian;
- /* 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;
bzero (widep, (p - token_buffer) * WCHAR_BYTES);
for (cp = token_buffer + 1; cp < p; cp++)
*wp = *cp, wp += WCHAR_BYTES;