diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6467ca44af45714a2812ce174a9fd909a40bfde0..ab02e686fc71bb3af6c9f0ee9d29e12c4d87568b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR testsuite/35478 + gfortran.dg/generic_16.f90: New test. + 2008-03-15 Hans-Peter Nilsson <hp@axis.com> PR middle-end/35595 diff --git a/gcc/testsuite/gfortran.dg/generic_16.f90 b/gcc/testsuite/gfortran.dg/generic_16.f90 new file mode 100644 index 0000000000000000000000000000000000000000..cb6e34df554e43e1fb16b893790a34a04f9588fa --- /dev/null +++ b/gcc/testsuite/gfortran.dg/generic_16.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! PR35478 internal compiler error: Segmentation fault +MODULE auxiliary + IMPLICIT NONE + INTEGER, PARAMETER, PRIVATE :: dp = SELECTED_REAL_KIND(15) + INTERFACE median + MODULE PROCEDURE R_valmed, I_valmed, D_valmed + END INTERFACE + PUBLIC :: median + PRIVATE :: R_valmed, I_valmed, D_valmed +CONTAINS + RECURSIVE FUNCTION D_valmed (XDONT) RESULT (res_med) + Real (kind=dp), Dimension (:), Intent (In) :: XDONT + Real (kind=dp) :: res_med + res_med = 0.0d0 + END FUNCTION D_valmed + RECURSIVE FUNCTION R_valmed (XDONT) RESULT (res_med) + Real, Dimension (:), Intent (In) :: XDONT + Real :: res_med + res_med = 0.0 + END FUNCTION R_valmed + RECURSIVE FUNCTION I_valmed (XDONT) RESULT (res_med) + Integer, Dimension (:), Intent (In) :: XDONT + Integer :: res_med + res_med = 0 + END FUNCTION I_valmed +END MODULE auxiliary +PROGRAM main + USE auxiliary + IMPLICIT NONE + INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15) + REAL(kind=dp) :: rawData(2), data, work(3) + data = median(rawData, work) ! { dg-error "no specific function" } +END PROGRAM main