blob: 0f0f90f712243247645faa2bcf4af0f8835a574f [file] [log] [blame]
/* PR tree-optimization/79715 - hand-rolled strdup with unused result
not eliminated
{ dg-do compile }
{ dg-options "-O2 -Wall -fdump-tree-optimized" } */
void f (const char *s)
{
unsigned n = __builtin_strlen (s) + 1;
char *p = __builtin_malloc (n);
__builtin_memcpy (p, s, n);
__builtin_free (p);
}
void g (const char *s)
{
unsigned n = __builtin_strlen (s) + 1;
char *p = __builtin_malloc (n);
__builtin_strcpy (p, s);
__builtin_free (p);
}
/* { dg-final { scan-tree-dump-not "free" "optimized" } }
{ dg-final { scan-tree-dump-not "malloc" "optimized" } }
{ dg-final { scan-tree-dump-not "memcpy" "optimized" } }
{ dg-final { scan-tree-dump-not "strcpy" "optimized" } }
{ dg-final { scan-tree-dump-not "strlen" "optimized" } } */