This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[patch] More -Wstack-usage warnings: opcodes/aarch64-*
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: binutils at sourceware dot org
- Date: Thu, 24 Mar 2016 21:39:07 +0100
- Subject: [patch] More -Wstack-usage warnings: opcodes/aarch64-*
- Authentication-results: sourceware.org; auth=none
Hi,
gcc-6.0.0-0.16.fc25.x86_64
aarch64-dis.c: In function ‘print_operands’:
aarch64-dis.c:2151:1: error: stack usage might be unbounded [-Werror=stack-usage=]
aarch64-opc.c: In function ‘print_register_offset_address’:
aarch64-opc.c:2301:1: error: stack usage might be unbounded [-Werror=stack-usage=]
OK for check-in?
I have looked at
https://sourceware.org/bugzilla/show_bug.cgi?id=19851
and made the fix similar.
Jan
opcodes/
2016-03-24 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix -Wstack-usage warnings.
* aarch64-dis.c (print_operands): Substitute size.
* aarch64-opc.c (print_register_offset_address): Substitute tblen.
diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index 025d5d1..05e4768 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -2154,8 +2154,7 @@ print_operands (bfd_vma pc, const aarch64_opcode *opcode,
int i, pcrel_p, num_printed;
for (i = 0, num_printed = 0; i < AARCH64_MAX_OPND_NUM; ++i)
{
- const size_t size = 128;
- char str[size];
+ char str[128];
/* We regard the opcode operand info more, however we also look into
the inst->operands to support the disassembling of the optional
operand.
@@ -2166,7 +2165,7 @@ print_operands (bfd_vma pc, const aarch64_opcode *opcode,
break;
/* Generate the operand string in STR. */
- aarch64_print_operand (str, size, pc, opcode, opnds, i, &pcrel_p,
+ aarch64_print_operand (str, sizeof (str), pc, opcode, opnds, i, &pcrel_p,
&info->target);
/* Print the delimiter (taking account of omitted operand(s)). */
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index ae06ee3..76992df 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -2301,8 +2301,7 @@ static void
print_register_offset_address (char *buf, size_t size,
const aarch64_opnd_info *opnd)
{
- const size_t tblen = 16;
- char tb[tblen]; /* Temporary buffer. */
+ char tb[16]; /* Temporary buffer. */
bfd_boolean lsl_p = FALSE; /* Is LSL shift operator? */
bfd_boolean wm_p = FALSE; /* Should Rm be Wm? */
bfd_boolean print_extend_p = TRUE;
@@ -2334,9 +2333,9 @@ print_register_offset_address (char *buf, size_t size,
if (print_extend_p)
{
if (print_amount_p)
- snprintf (tb, tblen, ",%s #%d", shift_name, opnd->shifter.amount);
+ snprintf (tb, sizeof (tb), ",%s #%d", shift_name, opnd->shifter.amount);
else
- snprintf (tb, tblen, ",%s", shift_name);
+ snprintf (tb, sizeof (tb), ",%s", shift_name);
}
else
tb[0] = '\0';