From: Janus Weil Date: Wed, 9 Nov 2011 15:56:53 +0000 (+0100) Subject: re PR fortran/50960 ([OOP] vtables not marked as constant) X-Git-Tag: upstream/12.2.0~79901 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=560bb0136fa74c8562d7e078eef29d3d1f7b6fc5;p=platform%2Fupstream%2Fgcc.git re PR fortran/50960 ([OOP] vtables not marked as constant) 2011-11-09 Janus Weil PR fortran/50960 * gfortran.dg/typebound_call_22.f03: New test case. From-SVN: r181208 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a0eeb32..83ef171 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-11-09 Janus Weil + + PR fortran/50960 + * gfortran.dg/typebound_call_22.f03: New test case. + 2011-11-09 Janne Blomqvist PR libfortran/50016 diff --git a/gcc/testsuite/gfortran.dg/typebound_call_22.f03 b/gcc/testsuite/gfortran.dg/typebound_call_22.f03 new file mode 100644 index 0000000..b5aa8ee --- /dev/null +++ b/gcc/testsuite/gfortran.dg/typebound_call_22.f03 @@ -0,0 +1,32 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-optimized -O" } +! +! PR 50960: [OOP] vtables not marked as constant +! +! This test case checks whether the type-bound call to "x%bar" +! is optimized into a static call to "base". +! +! Contributed by Tobias Burnus + +module m + type t + contains + procedure, nopass :: bar => base + end type +contains + subroutine base() + write(*,*) 'base' + end subroutine +end module + +program test + use m + class(t), allocatable :: x + allocate (t :: x) + call x%bar () +end program + +! { dg-final { scan-tree-dump-times "base \\(\\);" 1 "optimized" } } +! { dg-final { cleanup-tree-dump "optimized" } } + +! { dg-final { cleanup-modules "m" } }