diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-03-05 17:22:16 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-03-05 17:22:16 +0100 |
commit | 9616781de2cfd1ab1d0e0c5fa238b12988c39945 (patch) | |
tree | 5c1be61f84bfbd21d79a9d30172b187d7a4d1e71 /gcc/builtins.c | |
parent | cff1a1225d8750df872cada03b7957e4f1a6df98 (diff) | |
download | gcc-9616781de2cfd1ab1d0e0c5fa238b12988c39945.zip gcc-9616781de2cfd1ab1d0e0c5fa238b12988c39945.tar.gz gcc-9616781de2cfd1ab1d0e0c5fa238b12988c39945.tar.bz2 |
re PR middle-end/89590 (ICE in maybe_emit_free_warning)
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.
From-SVN: r269392
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index c19ca30..d216d6f 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -10604,6 +10604,9 @@ maybe_emit_sprintf_chk_warning (tree exp, enum built_in_function fcode) 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); |