[patch] More -Wstack-usage warnings: opcodes/aarch64-*

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch] More -Wstack-usage warnings: opcodes/aarch64-*

Jan Kratochvil-2
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  <[hidden email]>

        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';
Reply | Threaded
Open this post in threaded view
|

Re: [patch] More -Wstack-usage warnings: opcodes/aarch64-*

Marcus
On 24 March 2016 at 20:39, Jan Kratochvil <[hidden email]> wrote:

> 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?

OK. Thanks /Marcus
Reply | Threaded
Open this post in threaded view
|

[commit] [patch] More -Wstack-usage warnings: opcodes/aarch64-*

Jan Kratochvil-2
On Thu, 24 Mar 2016 22:35:00 +0100, Marcus Shawcroft wrote:
> OK. Thanks /Marcus

Checked in:
        0d2f91fe2d5ea93dc3dc76780e6ec2e27d022d39


Jan