On March 5, 2019 4:18:13 PM GMT+01:00, Jakub Jelinek <ja...@redhat.com> wrote:
>Hi!
>
>When adding this warning years ago, I forgot to verify number of
>arguments.
>
>Fixed thusly, bootstrapped/regtested on powerpc64{,le}-linux, ok for
>trunk?

OK. 

Richard. 

>2019-03-05  Jakub Jelinek  <ja...@redhat.com>
>
>       PR middle-end/89590
>       * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
>       exactly one argument.
>
>       * gcc.dg/pr89590.c: New test.
>
>--- gcc/builtins.c.jj  2019-02-21 22:20:24.834100192 +0100
>+++ gcc/builtins.c     2019-03-05 10:53:26.301255523 +0100
>@@ -10604,6 +10604,9 @@ maybe_emit_sprintf_chk_warning (tree exp
> static void
> maybe_emit_free_warning (tree exp)
> {
>+  if (call_expr_nargs (exp) != 1)
>+    return;
>+
>   tree arg = CALL_EXPR_ARG (exp, 0);
> 
>   STRIP_NOPS (arg);
>--- gcc/testsuite/gcc.dg/pr89590.c.jj  2019-03-05 10:55:44.597980407
>+0100
>+++ gcc/testsuite/gcc.dg/pr89590.c     2019-03-05 10:55:16.194447677 +0100
>@@ -0,0 +1,11 @@
>+/* PR middle-end/89590 */
>+/* { dg-do compile } */
>+/* { dg-options "-O2 -Wall -w" } */
>+
>+void free (void *);
>+
>+void
>+foo (void)
>+{
>+  ((void (*)()) free) ();
>+}
>
>       Jakub

Reply via email to