From: Martin Sebor Date: Mon, 1 May 2017 16:46:49 +0000 (+0000) Subject: re PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated) X-Git-Tag: basepoints/gcc-9~7677 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=706eb1a70d6f1222cf14e84ab77c8b5404641182;p=thirdparty%2Fgcc.git re PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated) gcc/testsuite/ChangeLog: PR tree-optimization/79715 * gcc.dg/pr79715.c: New test. From-SVN: r247440 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f1c61a668c54..e0e04f354653 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-05-01 Martin Sebor + + PR tree-optimization/79715 + * gcc.dg/pr79715.c: New test. + 2017-05-01 Tom de Vries PR testsuite/65941 diff --git a/gcc/testsuite/gcc.dg/pr79715.c b/gcc/testsuite/gcc.dg/pr79715.c new file mode 100644 index 000000000000..0f0f90f71224 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr79715.c @@ -0,0 +1,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" } } */