blob: 0f0f90f712243247645faa2bcf4af0f8835a574f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* 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" } } */
|