diff options
author | Alan Modra <amodra@gmail.com> | 2025-07-09 09:13:14 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2025-07-09 09:35:07 +0930 |
commit | a093ef7af443b36d57f4aa0cb76eca677208d7bf (patch) | |
tree | a6b3ae82ab7307e18e4543f5faa167001a938d3e | |
parent | c78eda50fe3651e57c12d6ad850c2af2685ec30a (diff) | |
download | binutils-a093ef7af443b36d57f4aa0cb76eca677208d7bf.zip binutils-a093ef7af443b36d57f4aa0cb76eca677208d7bf.tar.gz binutils-a093ef7af443b36d57f4aa0cb76eca677208d7bf.tar.bz2 |
gas standardise md_section_align
The point here is that when valueT is 64 bits and int is 32 bits,
1 << align doesn't work for shifts larger than the size of int. (Not
that anyone is likely to use such large alignments in real code.)
-rw-r--r-- | gas/config/tc-avr.c | 2 | ||||
-rw-r--r-- | gas/config/tc-epiphany.c | 2 | ||||
-rw-r--r-- | gas/config/tc-fr30.c | 2 | ||||
-rw-r--r-- | gas/config/tc-frv.c | 2 | ||||
-rw-r--r-- | gas/config/tc-h8300.c | 2 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 2 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 2 | ||||
-rw-r--r-- | gas/config/tc-iq2000.c | 2 | ||||
-rw-r--r-- | gas/config/tc-lm32.c | 2 | ||||
-rw-r--r-- | gas/config/tc-m32c.c | 2 | ||||
-rw-r--r-- | gas/config/tc-m32r.c | 2 | ||||
-rw-r--r-- | gas/config/tc-m68hc11.c | 2 | ||||
-rw-r--r-- | gas/config/tc-mep.c | 2 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 2 | ||||
-rw-r--r-- | gas/config/tc-mn10300.c | 2 | ||||
-rw-r--r-- | gas/config/tc-msp430.c | 2 | ||||
-rw-r--r-- | gas/config/tc-mt.c | 2 | ||||
-rw-r--r-- | gas/config/tc-nds32.c | 2 | ||||
-rw-r--r-- | gas/config/tc-or1k.c | 2 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 2 | ||||
-rw-r--r-- | gas/config/tc-rl78.c | 2 | ||||
-rw-r--r-- | gas/config/tc-s12z.c | 2 | ||||
-rw-r--r-- | gas/config/tc-visium.c | 2 | ||||
-rw-r--r-- | gas/config/tc-wasm32.c | 2 | ||||
-rw-r--r-- | gas/config/tc-xgate.c | 2 |
25 files changed, 25 insertions, 25 deletions
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c index 6b78966..671df82 100644 --- a/gas/config/tc-avr.c +++ b/gas/config/tc-avr.c @@ -1440,7 +1440,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & (-1UL << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* If you define this macro, it should return the offset between the diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c index 55b7427..be23d15 100644 --- a/gas/config/tc-epiphany.c +++ b/gas/config/tc-epiphany.c @@ -154,7 +154,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c index 8246113..e120ca5 100644 --- a/gas/config/tc-fr30.c +++ b/gas/config/tc-fr30.c @@ -156,7 +156,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c index 86d8277..900fb4a 100644 --- a/gas/config/tc-frv.c +++ b/gas/config/tc-frv.c @@ -1226,7 +1226,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c index 12456b2..d7bb329 100644 --- a/gas/config/tc-h8300.c +++ b/gas/config/tc-h8300.c @@ -2223,7 +2223,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & (-1U << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index f1175e0..a22d094 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1589,7 +1589,7 @@ valueT md_section_align (asection *segment, valueT size) { int align = bfd_section_alignment (segment); - int align2 = (1 << align) - 1; + valueT align2 = ((valueT) 1 << align) - 1; return (size + align2) & ~align2; } diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 9292cfa..8fb8a7e 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -18126,7 +18126,7 @@ md_section_align (segT segment, valueT size) work. */ int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & (-((valueT) 1 << align))); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } #endif diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c index 45976e7..1a31e8e 100644 --- a/gas/config/tc-iq2000.c +++ b/gas/config/tc-iq2000.c @@ -425,7 +425,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c index 241b5be..2a4bbd3 100644 --- a/gas/config/tc-lm32.c +++ b/gas/config/tc-lm32.c @@ -276,7 +276,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* This function assembles the instructions. It emits the frags/bytes to the diff --git a/gas/config/tc-m32c.c b/gas/config/tc-m32c.c index a65daae..ff91d47 100644 --- a/gas/config/tc-m32c.c +++ b/gas/config/tc-m32c.c @@ -380,7 +380,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c index 410b6a8..2368c9a 100644 --- a/gas/config/tc-m32r.c +++ b/gas/config/tc-m32r.c @@ -1451,7 +1451,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c index 6dd8120..a9ac9c7 100644 --- a/gas/config/tc-m68hc11.c +++ b/gas/config/tc-m68hc11.c @@ -583,7 +583,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } static int diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c index e132767..1469186 100644 --- a/gas/config/tc-mep.c +++ b/gas/config/tc-mep.c @@ -1381,7 +1381,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index a1b56d7..8b648ae 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -17630,7 +17630,7 @@ md_section_align (asection *seg, valueT addr) if (align > 4) align = 4; - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* Utility routine, called from above as well. If called while the diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index 4e0072d..537c2cb 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -902,7 +902,7 @@ md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c index 4b37c31..0127a2a 100644 --- a/gas/config/tc-msp430.c +++ b/gas/config/tc-msp430.c @@ -4384,7 +4384,7 @@ md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* If you define this macro, it should return the offset between the diff --git a/gas/config/tc-mt.c b/gas/config/tc-mt.c index e5e9d5c..a795bdc 100644 --- a/gas/config/tc-mt.c +++ b/gas/config/tc-mt.c @@ -335,7 +335,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c index 53fb2c1..f5c021d 100644 --- a/gas/config/tc-nds32.c +++ b/gas/config/tc-nds32.c @@ -6608,7 +6608,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & ((valueT) -1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* GAS will call this function when a symbol table lookup fails, before it diff --git a/gas/config/tc-or1k.c b/gas/config/tc-or1k.c index 87a2ac0..33975fe 100644 --- a/gas/config/tc-or1k.c +++ b/gas/config/tc-or1k.c @@ -164,7 +164,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 08c3b7b..9b3aaab 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -6493,7 +6493,7 @@ md_section_align (asection *seg ATTRIBUTE_UNUSED, valueT addr) #else int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); #endif } diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c index a20e8b1..36ccacd 100644 --- a/gas/config/tc-rl78.c +++ b/gas/config/tc-rl78.c @@ -1508,5 +1508,5 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } diff --git a/gas/config/tc-s12z.c b/gas/config/tc-s12z.c index 0299f97..438418a 100644 --- a/gas/config/tc-s12z.c +++ b/gas/config/tc-s12z.c @@ -186,7 +186,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c index c1a6d75..1e3e3a8 100644 --- a/gas/config/tc-visium.c +++ b/gas/config/tc-visium.c @@ -201,7 +201,7 @@ md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c index 066255f..23d2b43 100644 --- a/gas/config/tc-wasm32.c +++ b/gas/config/tc-wasm32.c @@ -178,7 +178,7 @@ valueT md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* Apply a fixup, return TRUE if done (and no relocation is diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c index 8d1f474..0823ecd 100644 --- a/gas/config/tc-xgate.c +++ b/gas/config/tc-xgate.c @@ -466,7 +466,7 @@ valueT md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void |