mips-tfile.c (initialize_init_file): Correct endianness test.

* mips-tfile.c (initialize_init_file): Correct endianness test.

From-SVN: r121602
This commit is contained in:
Roger Sayle 2007-02-05 16:37:05 +00:00 committed by Roger Sayle
parent cd5c235734
commit 8d0510ddbd
2 changed files with 21 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2007-02-05 Roger Sayle <roger@eyesopen.com>
* mips-tfile.c (initialize_init_file): Correct endianness test.
2007-02-05 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use

View File

@ -3,7 +3,7 @@
in the form of comments (the mips assembler does not support
assembly access to debug information).
Copyright (C) 1991, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
Contributed by Michael Meissner (meissner@cygnus.com).
This file is part of GCC.
@ -2352,15 +2352,28 @@ add_procedure (const char *func_start, /* 1st byte of func name */
STATIC void
initialize_init_file (void)
{
union {
unsigned char c[4];
int i;
} endian_test;
memset (&init_file, 0, sizeof (init_file));
init_file.fdr.lang = langC;
init_file.fdr.fMerge = 1;
init_file.fdr.glevel = GLEVEL_2;
#ifdef WORDS_BIG_ENDIAN
init_file.fdr.fBigendian = 1;
#endif
/* mips-tfile doesn't attempt to perform byte swapping and always writes
out integers in its native ordering. For cross-compilers, this need
not be the same as either the host or the target. The simplest thing
to do is skip the configury and perform an introspective test. */
/* ??? Despite the name, mips-tfile is currently only used on alpha/Tru64
and would/may require significant work to be used in cross-compiler
configurations, so we could simply admit defeat and hard code this as
little-endian, i.e. init_file.fdr.fBigendian = 0. */
endian_test.i = 1;
if (endian_test.c[3])
init_file.fdr.fBigendian = 1;
INITIALIZE_VARRAY (&init_file.strings, char);
INITIALIZE_VARRAY (&init_file.symbols, SYMR);