OSDN Git Service

* builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
authorpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Jan 2011 17:46:15 +0000 (17:46 +0000)
committerpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Jan 2011 17:46:15 +0000 (17:46 +0000)
WORDS_BIG_ENDIAN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169174 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/builtins.c

index c181a54..f2df6f6 100644 (file)
@@ -1,3 +1,8 @@
+2011-101-24  Paul Koning  <ni1d@arrl.net>
+
+       * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
+       WORDS_BIG_ENDIAN. 
+
 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/46519
 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/46519
index ec0aecf..5b7b673 100644 (file)
@@ -605,7 +605,7 @@ c_readstr (const char *str, enum machine_mode mode)
       if (WORDS_BIG_ENDIAN)
        j = GET_MODE_SIZE (mode) - i - 1;
       if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN
       if (WORDS_BIG_ENDIAN)
        j = GET_MODE_SIZE (mode) - i - 1;
       if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN
-         && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
+         && GET_MODE_SIZE (mode) >= UNITS_PER_WORD)
        j = j + UNITS_PER_WORD - 2 * (j % UNITS_PER_WORD) - 1;
       j *= BITS_PER_UNIT;
       gcc_assert (j < 2 * HOST_BITS_PER_WIDE_INT);
        j = j + UNITS_PER_WORD - 2 * (j % UNITS_PER_WORD) - 1;
       j *= BITS_PER_UNIT;
       gcc_assert (j < 2 * HOST_BITS_PER_WIDE_INT);