diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/trim_optimize_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/trim_optimize_1.f90 | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/trim_optimize_1.f90 b/gcc/testsuite/gfortran.dg/trim_optimize_1.f90 new file mode 100644 index 000000000..26aa5cd94 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/trim_optimize_1.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! { dg-options "-O -fdump-tree-original" } +! PR 40628 - optimize unnecessary TRIMs on assignment +program main + character(len=3) :: a + character(len=4) :: b,c + b = 'abcd' + a = trim(b) + c = trim(trim(a)) + if (a /= 'abc') call abort + if (c /= 'abc') call abort +end program main + +! { dg-final { scan-tree-dump-times "memmove" 2 "original" } } +! { dg-final { scan-tree-dump-times "string_trim" 0 "original" } } +! { dg-final { cleanup-tree-dump "original" } } |