[PATCH] IA-64/GAS: Fix format truncation compilation errors
Jan Beulich
jbeulich@suse.com
Thu Aug 7 14:12:51 GMT 2025
On 07.08.2025 15:31, Maciej W. Rozycki wrote:
> On Thu, 7 Aug 2025, Jan Beulich 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?
>
> There's no mention of a bug and the description merely states the facts
> (that the change fixes compilation errors specifically with GCC 10) in a
> neutral way. If you think that s/Fix/Work around/ will make the statement
> acceptable though, then I'm not going to argue; I couldn't care less.
Yes, that's what I've effectively asked for.
Jan
More information about the Binutils
mailing list