[binutils-gdb] PR27101, as: Reject (byte) .align 0x100000000
Alan Modra
amodra@sourceware.org
Mon Jan 4 00:41:22 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=90320e40958020aea265dc693d0613a330e40b61
commit 90320e40958020aea265dc693d0613a330e40b61
Author: Alan Modra <amodra@gmail.com>
Date: Mon Jan 4 08:53:37 2021 +1030
PR27101, as: Reject (byte) .align 0x100000000
This allows alignments up to 2**TC_ALIGN_LIMIT, which might be larger
than an unsigned int can hold.
PR 27101
* read.c (s_align): Use a large enough type for "align" to hold
the result of get_absolute_expression.
Diff:
---
gas/ChangeLog | 6 ++++++
gas/read.c | 4 ++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 155ec7e3b16..b38c379a215 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2021-01-04 Alan Modra <amodra@gmail.com>
+
+ PR 27101
+ * read.c (s_align): Use a large enough type for "align" to hold
+ the result of get_absolute_expression.
+
2021-01-01 Nicolas Boulenguez <nicolas@debian.org>
* config/tc-i386.c: Correct comment spelling.
diff --git a/gas/read.c b/gas/read.c
index cf704b31ca3..9d0ba27ea8c 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -1548,7 +1548,7 @@ static void
s_align (signed int arg, int bytes_p)
{
unsigned int align_limit = TC_ALIGN_LIMIT;
- unsigned int align;
+ addressT align;
char *stop = NULL;
char stopc = 0;
offsetT fill = 0;
@@ -1595,7 +1595,7 @@ s_align (signed int arg, int bytes_p)
if (align > align_limit)
{
align = align_limit;
- as_warn (_("alignment too large: %u assumed"), align);
+ as_warn (_("alignment too large: %u assumed"), align_limit);
}
if (*input_line_pointer != ',')
More information about the Binutils-cvs
mailing list