coarray_41.f90: Add "-latomic" option if libatomic_available.
[official-gcc.git] / gcc / testsuite / gfortran.dg / compiler-directive_1.f90
blob75f28dcc928d3480fcd67dc6cc05c7f5cc36e5cd
1 ! { dg-do compile }
3 ! PR fortran/34112
5 ! Check for calling convention consitency
6 ! in procedure-pointer assignments.
8 program test
9 interface
10 subroutine sub1()
11 end subroutine sub1
12 subroutine sub2()
13 !GCC$ ATTRIBUTES CDECL :: sub2
14 end subroutine sub2
15 subroutine sub3()
16 !GCC$ ATTRIBUTES STDCALL :: sub3
17 end subroutine sub3
18 subroutine sub4()
19 !GCC$ ATTRIBUTES FASTCALL :: sub4
20 end subroutine sub4
21 end interface
23 !gcc$ attributes cdecl :: cdecl
24 !gcc$ attributes stdcall :: stdcall
25 procedure(), pointer :: ptr
26 procedure(), pointer :: cdecl
27 procedure(), pointer :: stdcall
28 procedure(), pointer :: fastcall
29 !gcc$ attributes fastcall :: fastcall
31 ! Valid:
32 ptr => sub1
33 cdecl => sub2
34 stdcall => sub3
35 fastcall => sub4
37 ! Invalid:
38 ptr => sub3 ! { dg-error "mismatch in the calling convention" }
39 ptr => sub4 ! { dg-error "mismatch in the calling convention" }
40 cdecl => sub3 ! { dg-error "mismatch in the calling convention" }
41 cdecl => sub4 ! { dg-error "mismatch in the calling convention" }
42 stdcall => sub1 ! { dg-error "mismatch in the calling convention" }
43 stdcall => sub2 ! { dg-error "mismatch in the calling convention" }
44 stdcall => sub4 ! { dg-error "mismatch in the calling convention" }
45 fastcall => sub1 ! { dg-error "mismatch in the calling convention" }
46 fastcall => sub2 ! { dg-error "mismatch in the calling convention" }
47 fastcall => sub3 ! { dg-error "mismatch in the calling convention" }
48 end program