diff options
author | Martin Sebor <msebor@redhat.com> | 2020-03-02 11:49:01 -0700 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2020-03-02 11:49:01 -0700 |
commit | f26688fbe441375e907f0dd2f35837681870b1f4 (patch) | |
tree | b77514512cafbbd4f5264b78f7225b491d46db9e /gcc | |
parent | e78e50d57edf4e0e49576a7a31b01477eed08223 (diff) | |
download | gcc-f26688fbe441375e907f0dd2f35837681870b1f4.zip gcc-f26688fbe441375e907f0dd2f35837681870b1f4.tar.gz gcc-f26688fbe441375e907f0dd2f35837681870b1f4.tar.bz2 |
Add new test for PR tree-optimization/92982.
gcc/testsuite/ChangeLog:
PR tree-optimization/92982
* gcc.dg/strlenopt-94.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/strlenopt-94.c | 28 |
2 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 79fe37d..e18c6a9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-02 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/92982 + * gcc.dg/strlenopt-94.c: New test. + 2020-03-02 Iain Sandoe <iain@sandoe.co.uk> * g++.dg/coroutines/torture/func-params-09-awaitable-parms.C: New test. diff --git a/gcc/testsuite/gcc.dg/strlenopt-94.c b/gcc/testsuite/gcc.dg/strlenopt-94.c new file mode 100644 index 0000000..c2a23d3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/strlenopt-94.c @@ -0,0 +1,28 @@ +/* PR tree-optimization/93982 - Assignment incorrectly omitted by + -foptimize-strlen + { dg-do run } + { dg-options "-O2 -Wall" } */ + +struct A { const char **a; }; +const char *buf[5]; + +__attribute__((noipa)) struct A +foo (char *p) +{ + struct A r = { (const char **) p }; + r.a[0] = "12345678"; + r.a[1] = ""; + r.a[2] = ""; + r.a[3] = ""; + r.a[4] = ""; + return r; +} + +int +main () +{ + struct A r = foo ((char *) &buf[0]); + if (!r.a[1] || r.a[1][0] != '\0') + __builtin_abort (); + return 0; +} |