1! PR fortran/79154 2! { dg-do compile } 3 4pure real function foo (a, b) ! { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } } 5!$omp declare simd(foo) ! { dg-bogus "may not appear in PURE" } 6 real, intent(in) :: a, b 7 foo = a + b 8end function foo 9pure function bar (a, b) 10 real, intent(in) :: a(8), b(8) 11 real :: bar(8) 12 integer :: i 13!$omp simd ! { dg-bogus "may not appear in PURE" } 14 do i = 1, 8 15 bar(i) = a(i) + b(i) 16 end do 17end function bar 18pure real function baz (a, b) 19!$omp declare target ! { dg-bogus "may not appear in PURE" } 20 real, intent(in) :: a, b 21 baz = a + b 22end function baz 23elemental real function fooe (a, b) ! { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } } 24!$omp declare simd(fooe) ! { dg-bogus "may not appear in PURE" } 25 real, intent(in) :: a, b 26 fooe = a + b 27end function fooe 28elemental real function baze (a, b) 29!$omp declare target ! { dg-bogus "may not appear in PURE" } 30 real, intent(in) :: a, b 31 baze = a + b 32end function baze 33elemental impure real function bazei (a, b) 34!$omp declare target ! { dg-bogus "may not appear in PURE" } 35 real, intent(in) :: a, b 36 baze = a + b 37end function bazei 38