Break circular dependency between FIR dialect and utilities
[llvm-project.git] / flang / test / Semantics / declarations02.f90
blob439527a0edb6afa016ae6b38e07603c5944de335
1 ! RUN: %python %S/test_errors.py %s %flang_fc1
3 module m
4 !ERROR: 'x1' may not have both the BIND(C) and PARAMETER attributes
5 integer, parameter, bind(c, name="a") :: x1 = 1
6 !ERROR: 'x2' may not have both the BIND(C) and PARAMETER attributes
7 integer, bind(c), parameter :: x2 = 1
9 !ERROR: 'x3' may not have both the BIND(C) and PARAMETER attributes
10 integer, parameter :: x3 = 1
11 bind(c) :: x3
13 type :: my_type1
14 integer :: x4
15 end type
16 type, bind(c) :: my_type2
17 integer :: x5
18 end type
20 !ERROR: 't1' may not have both the BIND(C) and PARAMETER attributes
21 !ERROR: The derived type of a BIND(C) object must also be BIND(C)
22 type(my_type1), bind(c), parameter :: t1 = my_type1(1)
23 !ERROR: 't2' may not have both the BIND(C) and PARAMETER attributes
24 type(my_type2), bind(c), parameter :: t2 = my_type2(1)
26 type(my_type2), parameter :: t3 = my_type2(1) ! no error
27 !ERROR: 't4' may not have both the BIND(C) and PARAMETER attributes
28 !ERROR: The derived type of a BIND(C) object must also be BIND(C)
29 type(my_type1), parameter :: t4 = my_type1(1)
30 !ERROR: 't5' may not have both the BIND(C) and PARAMETER attributes
31 type(my_type2), parameter :: t5 = my_type2(1)
32 bind(c) :: t4, t5
34 end