aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2000-07-22 04:23:48 +0000
committerAlan Modra <amodra@gmail.com>2000-07-22 04:23:48 +0000
commit65e68b04b1bfc88c11a5a49e0ccfd636cd995a46 (patch)
tree0c724e714673a73c5a74c3aa490e0c8a5d57706d
parente9d196c53fe0ea5fd893e6312847cc9ce1e32d28 (diff)
downloadgdb-65e68b04b1bfc88c11a5a49e0ccfd636cd995a46.zip
gdb-65e68b04b1bfc88c11a5a49e0ccfd636cd995a46.tar.gz
gdb-65e68b04b1bfc88c11a5a49e0ccfd636cd995a46.tar.bz2
Correct absolute section alignment.
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/frags.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index bca4ec0..f7501d0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2000-07-22 Alan Modra <alan@linuxcare.com.au>
+
+ * frags.c (frag_align): Correct absolute section alignment.
+
2000-07-20 DJ Delorie <dj@redhat.com>
* config/obj-coff.c (obj_frob_symbol): revert previous change,
diff --git a/gas/frags.c b/gas/frags.c
index 2b2c91d..5c31b7e 100644
--- a/gas/frags.c
+++ b/gas/frags.c
@@ -303,9 +303,10 @@ frag_align (alignment, fill_character, max)
if (now_seg == absolute_section)
{
addressT new_off;
+ addressT mask;
- new_off = ((abs_section_offset + alignment - 1)
- &~ ((1 << alignment) - 1));
+ mask = (~ (addressT) 0) << alignment;
+ new_off = (abs_section_offset + ~ mask) & mask;
if (max == 0 || new_off - abs_section_offset <= (addressT) max)
abs_section_offset = new_off;
}