diff options
author | Martin Sebor <msebor@redhat.com> | 2017-05-01 16:46:49 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2017-05-01 10:46:49 -0600 |
commit | 706eb1a70d6f1222cf14e84ab77c8b5404641182 (patch) | |
tree | 51a4a58d7c94551d53e7f733f2b1d206e7b46d6a | |
parent | a6c78ea30381cc28ea0b2cf8f0bd584a91dda948 (diff) | |
download | gcc-706eb1a70d6f1222cf14e84ab77c8b5404641182.zip gcc-706eb1a70d6f1222cf14e84ab77c8b5404641182.tar.gz gcc-706eb1a70d6f1222cf14e84ab77c8b5404641182.tar.bz2 |
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
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr79715.c | 26 |
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f1c61a6..e0e04f3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-05-01 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/79715 + * gcc.dg/pr79715.c: New test. + 2017-05-01 Tom de Vries <tom@codesourcery.com> PR testsuite/65941 diff --git a/gcc/testsuite/gcc.dg/pr79715.c b/gcc/testsuite/gcc.dg/pr79715.c new file mode 100644 index 0000000..0f0f90f --- /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" } } */ |