[PATCH] IA-64/GAS: Fix format truncation compilation errors
Jan Beulich
jbeulich@suse.com
Thu Aug 7 08:33:51 GMT 2025
On 07.08.2025 00:01, Maciej W. Rozycki wrote:
> Fix compilation errors:
>
> .../gas/config/tc-ia64.c: In function 'declare_register_set':
> .../gas/config/tc-ia64.c:5375:41: error: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size 8 [-Werror=format-truncation=]
> 5375 | snprintf (name, sizeof (name), "%s%u", prefix, i);
> | ^~
> .../gas/config/tc-ia64.c:5375:38: note: directive argument in the range [0, 4294967294]
> 5375 | snprintf (name, sizeof (name), "%s%u", prefix, i);
> | ^~~~~~
> .../gas/config/tc-ia64.c:5375:7: note: 'snprintf' output 2 or more bytes (assuming 11) into a destination of size 8
> 5375 | snprintf (name, sizeof (name), "%s%u", prefix, i);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> observed with GCC 10. Pick 16 for a round 64-bit stack frame size.
This looks to be a workaround for a compiler shortcoming, not really a fix
for anything. declare_register_set() being static, the compiler can actually
know value ranges as well as string literals passed in, and hence it could
infer that no more than 6 bytes of the buffer would ever be used. Please can
we call workarounds workarounds, not bug fixes?
In case you don't get a reply from Jim within, say, a week: Okay with
respective adjustments to subject and description.
Jan
More information about the Binutils
mailing list