On Mon, 7 Jan 2013, Jakub Jelinek wrote:
> On Mon, Jan 07, 2013 at 03:06:50PM +0100, Richard Biener wrote:
> > *** gcc/tree-ssa-strlen.c (revision 194970)
> > --- gcc/tree-ssa-strlen.c (working copy)
> > *** adjust_last_stmt (strinfo si, gimple stm
> > *** 809,818
> >
> >
On Mon, Jan 07, 2013 at 03:06:50PM +0100, Richard Biener wrote:
> *** gcc/tree-ssa-strlen.c (revision 194970)
> --- gcc/tree-ssa-strlen.c (working copy)
> *** adjust_last_stmt (strinfo si, gimple stm
> *** 809,818
>
> if (!is_gimple_call (last.stmt))
> return;
On Mon, 7 Jan 2013, Jakub Jelinek wrote:
> On Mon, Jan 07, 2013 at 02:55:48PM +0100, Richard Biener wrote:
> > *** gcc/testsuite/gcc.dg/torture/pr55890-1.c(revision 0)
> > --- gcc/testsuite/gcc.dg/torture/pr55890-1.c(working copy)
> > ***
> > *** 0
> > --- 1,6
On Mon, Jan 07, 2013 at 02:55:48PM +0100, Richard Biener wrote:
> *** gcc/testsuite/gcc.dg/torture/pr55890-1.c (revision 0)
> --- gcc/testsuite/gcc.dg/torture/pr55890-1.c (working copy)
> ***
> *** 0
> --- 1,6
> + /* { dg-do compile } */
> +
> + extern void *memmove(void *,
Since we freely propagate function addresses we can end up with
call statements with mismatched number and type of arguments
than what the function decl referenced says. This is a problem
for builtin decls and all code that tries to examine their
arguments (which may not be there or be of bogus t