equiv_constraint_2.f90

来自「linux下编程用 编译软件」· F90 代码 · 共 75 行

F90
75
字号
! { dg-do compile }! { dg-options "-std=f95" }!! PR20901 - Checks resolution of types in EQUIVALENCE statement when! f95 standard is imposed.!! Contributed by Paul Thomas <pault@gcc.gnu.org>!  type   :: numeric_type    sequence    integer      :: i    real         :: x    real(kind=8) :: d    complex      :: z    logical      :: l  end type numeric_type  type (numeric_type) :: my_num, thy_num  type   :: numeric_type2    sequence    integer      :: i    real         :: x    real(kind=8) :: d    complex      :: z    logical      :: l  end type numeric_type2  type (numeric_type2) :: his_num  type       :: char_type    sequence    character*4 :: ch    character*4 :: cha (6)  end type char_type  type (char_type) ::  my_char  type       :: mixed_type    sequence    integer     :: i(4)    character*4 :: cha (6)  end type mixed_type  type (mixed_type) ::  my_mixed, thy_mixed  character(len=4) :: ch  integer         :: num  integer(kind=8) :: non_def  complex(kind=8) :: my_z, thy_z! Permitted: character with character sequence!            numeric with numeric sequence!            numeric sequence with numeric sequence!            non-default of same type!            mixed sequences of same type  equivalence (ch, my_char)  equivalence (num, my_num)  equivalence (my_num, his_num, thy_num)  equivalence (my_z, thy_z)  equivalence (my_mixed, thy_mixed)! Not permitted by the standard - OK with -std=gnu  equivalence (my_mixed, my_num) ! { dg-error "with mixed components in EQUIVALENCE" }  equivalence (my_z, num) ! { dg-error "Non-default type object or sequence" }  equivalence (my_char, my_num) ! { dg-error "in default CHARACTER EQUIVALENCE" }  equivalence (ch, my_num) ! { dg-error "in default CHARACTER EQUIVALENCE" }  equivalence (my_num, ch) ! { dg-error "in default NUMERIC EQUIVALENCE" }  equivalence (num, my_char) ! { dg-error "in default NUMERIC EQUIVALENCE" }  equivalence (my_char, num) ! { dg-error "in default CHARACTER EQUIVALENCE" }  equivalence (non_def, ch) ! { dg-error "Non-default type object or sequence" }  equivalence (my_z, ch) ! { dg-error "Non-default type object or sequence" }  equivalence (my_z, num) ! { dg-error "Non-default type object or sequence" } END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?