OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [equiv_constraint_2.f90] - Diff between revs 149 and 154

Only display areas with differences | Details | Blame | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.