Plugins: Add label-text.h to CPPLIB_H so it will be installed [PR115288]
[official-gcc.git] / gcc / testsuite / gfortran.dg / bind_c_array_params_2.f90
blobaa6a37b485048262263ff06e6fcef88efaf78449
1 ! { dg-do compile }
2 ! { dg-options "-std=f2008ts -fdump-tree-original" }
3 ! { dg-additional-options "-mno-explicit-relocs" { target alpha*-*-* } }
4 ! { dg-additional-options "-mno-relax-pic-calls" { target mips*-*-* } }
5 ! { dg-additional-options "-fplt -mcmodel=normal" { target loongarch*-*-* } }
7 ! Check that assumed-shape variables are correctly passed to BIND(C)
8 ! as defined in TS 29913
10 interface
11 subroutine test (xx) bind(C, name="myBindC")
12 type(*), dimension(:,:) :: xx
13 end subroutine test
14 end interface
16 integer :: aa(4,4)
17 call test(aa)
18 end
20 ! { dg-final { scan-assembler-times "\[ \t\]\[$,_0-9\]*myBindC" 1 { target { ! { hppa*-*-* s390*-*-* *-*-cygwin* amdgcn*-*-* powerpc-ibm-aix* *-*-ming* loongarch*-*-* } } } } }
21 ! { dg-final { scan-assembler-times "bl\t%plt\\(myBindC\\)" 1 { target loongarch*-*-* } } }
22 ! { dg-final { scan-assembler-times "myBindC,%r2" 1 { target { hppa*-*-* } } } }
23 ! { dg-final { scan-assembler-times "call\tmyBindC" 1 { target { *-*-cygwin* *-*-ming* } } } }
24 ! { dg-final { scan-assembler-times "brasl\t%r\[0-9\]*,myBindC" 1 { target { s390*-*-* } } } }
25 ! { dg-final { scan-assembler-times "bl \.myBindC" 1 { target { powerpc-ibm-aix* } } } }
26 ! { dg-final { scan-assembler-times "add_u32\t\[sv\]\[0-9\]*, \[sv\]\[0-9\]*, myBindC@rel32@lo" 1 { target { amdgcn*-*-* } } } }
29 ! { dg-final { scan-tree-dump "parm...span = 4;" "original" } }
30 ! { dg-final { scan-tree-dump "parm...dtype = {.elem_len=4, .version=0, .rank=2, .type=1};" "original" } }
31 ! { dg-final { scan-tree-dump "parm...dim\\\[0\\\].lbound = 1;" "original" } }
32 ! { dg-final { scan-tree-dump "parm...dim\\\[0\\\].ubound = 4;" "original" } }
33 ! { dg-final { scan-tree-dump "parm...dim\\\[0\\\].stride = 1;" "original" } }
34 ! { dg-final { scan-tree-dump "parm...dim\\\[1\\\].lbound = 1;" "original" } }
35 ! { dg-final { scan-tree-dump "parm...dim\\\[1\\\].ubound = 4;" "original" } }
36 ! { dg-final { scan-tree-dump "parm...dim\\\[1\\\].stride = 4;" "original" } }
37 ! { dg-final { scan-tree-dump "parm...data = \\(void \\*\\) &aa\\\[0\\\];" "original" } }
38 ! { dg-final { scan-tree-dump "parm...offset = -5;" "original" } }
39 ! { dg-final { scan-tree-dump "cfi...version = 1;" "original" } }
40 ! { dg-final { scan-tree-dump "cfi...rank = 2;" "original" } }
41 ! { dg-final { scan-tree-dump "cfi...type = 1025;" "original" } }
42 ! { dg-final { scan-tree-dump "cfi...attribute = 2;" "original" } }
43 ! { dg-final { scan-tree-dump "cfi...base_addr = parm.0.data;" "original" } }
44 ! { dg-final { scan-tree-dump "cfi...elem_len = 4;" "original" } }
45 ! { dg-final { scan-tree-dump "idx.2 = 0;" "original" } }
47 ! { dg-final { scan-tree-dump "if \\(idx.. <= 1\\) goto L..;" "original" } }
48 ! { dg-final { scan-tree-dump "cfi...dim\\\[idx..\\\].lower_bound = 0;" "original" } }
49 ! { dg-final { scan-tree-dump "cfi...dim\\\[idx..\\\].extent = \\(parm...dim\\\[idx..\\\].ubound - parm...dim\\\[idx..\\\].lbound\\) \\+ 1;" "original" } }
50 ! { dg-final { scan-tree-dump "cfi...dim\\\[idx..\\\].sm = parm...dim\\\[idx..\\\].stride \\* parm...span;" "original" } }
51 ! { dg-final { scan-tree-dump "idx.. = idx.. \\+ 1;" "original" } }
53 ! { dg-final { scan-tree-dump "test \\(&cfi..\\);" "original" } }