gas: range-check 3rd argument of .align et al

Negative values would have been silently converted to large positive
ones, which may not be the user's intention. Similarly overly large
values would have been silently truncated. Warn them instead, and zap
such values.
This commit is contained in:
Jan Beulich
2025-05-16 10:37:46 +02:00
parent 6809fe7536
commit 344b1e0f5f

View File

@@ -1598,7 +1598,13 @@ s_align (signed int arg, int bytes_p)
else
{
++input_line_pointer;
max = get_absolute_expression ();
offsetT val = get_absolute_expression ();
max = val;
if (val < 0 || max != val)
{
as_warn (_("ignoring out of range alignment maximum"));
max = 0;
}
}
}