1! { dg-do run } 2! { dg-options "-fshort-enums -w" } 3! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm_eabi } } 4! { dg-additional-sources enum_10.c } 5! Make sure short enums are indeed interoperable with the 6! corresponding C type. 7 8module enum_10 9enum, bind( c ) 10 enumerator :: one1 = 1, two1, max1 = huge(1_1) 11end enum 12 13enum, bind( c ) 14 enumerator :: one2 = 1, two2, max2 = huge(1_2) 15end enum 16 17enum, bind( c ) 18 enumerator :: one4 = 1, two4, max4 = huge(1_4) 19end enum 20end module enum_10 21 22use enum_10 23 24interface f1 25 subroutine f1(i,j) 26 use enum_10 27 integer (kind(max1)) :: i 28 integer :: j 29 end subroutine f1 30end interface 31 32 33interface f2 34 subroutine f2(i,j) 35 use enum_10 36 integer (kind(max2)) :: i 37 integer :: j 38 end subroutine f2 39end interface 40 41 42interface f4 43 subroutine f4(i,j) 44 use enum_10 45 integer (kind(max4)) :: i 46 integer :: j 47 end subroutine f4 48end interface 49 50 51call f1 (one1, 1) 52call f1 (two1, 2) 53call f1 (max1, huge(1_1)+0) ! Adding 0 to get default integer 54 55call f2 (one2, 1) 56call f2 (two2, 2) 57call f2 (max2, huge(1_2)+0) 58 59call f4 (one4, 1) 60call f4 (two4, 2) 61call f4 (max4, huge(1_4)+0) 62end 63