From: Alan Modra Date: Sun, 3 Jan 2021 22:23:37 +0000 (+1030) Subject: PR27101, as: Reject (byte) .align 0x100000000 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=90320e40958020aea265dc693d0613a330e40b61;p=binutils-gdb.git 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 --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 + + 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 * 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 != ',')