! { dg-do compile } ! module m1 contains pure pure subroutine a1(b) ! { dg-error "Duplicate PURE attribute specified" } real, intent(in) :: b ! { dg-error "Unexpected data declaration statement" } end subroutine a1 ! { dg-error "Expecting END MODULE" } end module m1 module m2 contains elemental elemental subroutine a2(b) ! { dg-error "Duplicate ELEMENTAL attribute" } real, intent(in) :: b ! { dg-error "Unexpected data declaration statement" } end subroutine a2 ! { dg-error "Expecting END MODULE" } end module m2 module m3 contains recursive recursive subroutine a3(b) ! { dg-error "Duplicate RECURSIVE attribute" } real, intent(in) :: b ! { dg-error "Unexpected data declaration statement" } end subroutine a3 ! { dg-error "Expecting END MODULE" } end module m3