1! { dg-do compile }
2!
3! TS 29113
4! C1255a (R1230) A dummy argument of a procedure that has a
5! proc-language-binding-spec shall not have both the OPTIONAL and
6! VALUE attributes.
7!
8! This file contains code that is expected to produce errors.
9
10module m
11
12  interface
13
14    ! This one is OK.
15    subroutine s1 (x, y) bind (c)
16      use ISO_C_BINDING
17      implicit none
18      integer(C_INT) :: x
19      integer(C_INT), optional :: y
20    end subroutine
21
22    ! This one is OK too.
23    subroutine s2 (x, y) bind (c)
24      use ISO_C_BINDING
25      implicit none
26      integer(C_INT) :: x
27      integer(C_INT), value :: y
28    end subroutine
29
30    ! This one is bad.
31    subroutine s3 (x, y) bind (c)    ! { dg-error "BIND\\(C\\)" }
32      use ISO_C_BINDING
33      implicit none
34      integer(C_INT) :: x
35      integer(C_INT), optional, value :: y
36    end subroutine
37
38  end interface
39
40end module
41