diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-02-10 12:50:52 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2024-02-10 12:50:52 +0100 |
commit | b2684e5512b097fbaa63dd18c35f8af4b351920c (patch) | |
tree | 518c686730121bc0969d28916fd46def4d925ab4 /libgcc/soft-fp/fixsdbitint.c | |
parent | 39920447f876128ff7942a9cd931021800865894 (diff) | |
download | gcc-b2684e5512b097fbaa63dd18c35f8af4b351920c.zip gcc-b2684e5512b097fbaa63dd18c35f8af4b351920c.tar.gz gcc-b2684e5512b097fbaa63dd18c35f8af4b351920c.tar.bz2 |
libgcc: Fix BIL_TYPE_SIZE == 32 support in _BitInt <-> dfp support
I've tried last night to enable _BitInt support for i?86-linux, and
a few spots in libgcc emitted -Wshift-count-overflow warnings and clearly
didn't do what it was supposed to do.
Fixed thusly.
2024-02-10 Jakub Jelinek <jakub@redhat.com>
* soft-fp/fixddbitint.c (__bid_fixddbitint): Fix up
BIL_TYPE_SIZE == 32 shifts.
* soft-fp/fixsdbitint.c (__bid_fixsdbitint): Likewise.
* soft-fp/fixtdbitint.c (__bid_fixtdbitint): Likewise.
* soft-fp/floatbitintdd.c (__bid_floatbitintdd): Likewise.
* soft-fp/floatbitinttd.c (__bid_floatbitinttd): Likewise.
Diffstat (limited to 'libgcc/soft-fp/fixsdbitint.c')
-rw-r--r-- | libgcc/soft-fp/fixsdbitint.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libgcc/soft-fp/fixsdbitint.c b/libgcc/soft-fp/fixsdbitint.c index 98e3ab9..2ba550f 100644 --- a/libgcc/soft-fp/fixsdbitint.c +++ b/libgcc/soft-fp/fixsdbitint.c @@ -104,7 +104,7 @@ __bid_fixsdbitint (UBILtype *r, SItype rprec, _Decimal32 a) #if BIL_TYPE_SIZE == 64 d = limbs[0]; #elif BIL_TYPE_SIZE == 32 - d = (limbs[BITINT_END (0, 1)] << 32) | limbs[BITINT_END (1, 0)]; + d = (UDItype) limbs[BITINT_END (0, 1)] << 32 | limbs[BITINT_END (1, 0)]; #else # error Unsupported BIL_TYPE_SIZE #endif |