1240620Sjimharris! { dg-do compile } 2252263Sjimharris! Testcase from PR 25396: User defined operators returning arrays. 3240620Sjimharrismodule geometry 4240620Sjimharris 5240620Sjimharris implicit none 6240620Sjimharris 7240620Sjimharris interface operator(.cross.) 8240620Sjimharris module procedure cross 9240620Sjimharris end interface 10240620Sjimharris 11240620Sjimharriscontains 12240620Sjimharris 13240620Sjimharris ! Cross product between two 3d vectors. 14240620Sjimharris pure function cross(a, b) 15240620Sjimharris real, dimension(3), intent(in) :: a,b 16240620Sjimharris real, dimension(3) :: cross 17240620Sjimharris 18240620Sjimharris cross = (/ a(2) * b(3) - a(3) * b(2), & 19240620Sjimharris a(3) * b(1) - a(1) * b(3), & 20240620Sjimharris a(1) * b(2) - a(2) * b(1) /) 21240620Sjimharris end function cross 22240620Sjimharris 23240620Sjimharrisend module geometry 24240620Sjimharris 25240620Sjimharrisprogram opshape 26240620Sjimharris use geometry 27240620Sjimharris 28240620Sjimharris implicit none 29240620Sjimharris 30240620Sjimharris real :: t(3,3), a 31240620Sjimharris 32240620Sjimharris a = dot_product (t(:,1), t(:,2) .cross. t(:,3)) 33240620Sjimharris 34240620Sjimharrisend program opshape 35253109Sjimharris