aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>1999-11-21 07:53:01 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>1999-11-21 07:53:01 +0000
commit8b1cb95b7685c0a75ba692bb3f1fe12165c59814 (patch)
tree5e3c9ebabdccf3fde841ec196f1b3a658e239c6b /gcc/varasm.c
parent06a964de822dfc498ee497e253e6ca360a318d8d (diff)
downloadgcc-8b1cb95b7685c0a75ba692bb3f1fe12165c59814.zip
gcc-8b1cb95b7685c0a75ba692bb3f1fe12165c59814.tar.gz
gcc-8b1cb95b7685c0a75ba692bb3f1fe12165c59814.tar.bz2
varasm.c (output_constructor): Solve problem with long long bitfields...
* varasm.c (output_constructor): Solve problem with long long bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1). From-SVN: r30598
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index e3b0996..d4da698 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -4536,7 +4536,8 @@ output_constructor (exp, size)
if (shift < HOST_BITS_PER_WIDE_INT
&& shift + this_time > HOST_BITS_PER_WIDE_INT)
{
- this_time = (HOST_BITS_PER_WIDE_INT - shift);
+ this_time = shift + this_time - HOST_BITS_PER_WIDE_INT;
+ shift = HOST_BITS_PER_WIDE_INT;
}
/* Now get the bits from the appropriate constant word. */