Issue 167351
Summary [flang] PDT: Incorrect diagnostic on Length type parameter in PDT
Labels flang:frontend
Assignees
Reporter DanielCChen
    Not sure if Flang frontend has full support of the Length type parameter of PDT. If not yet, I am happy to close this issue and mark the test case.

Consider the following code:
```
MODULE Mod
      IMPLICIT NONE

      TYPE :: Base(k1, l1)
        INTEGER, KIND :: k1 = 1
 INTEGER, LEN  :: l1 = 1

        INTEGER(k1)   :: A0(l1) = -1
 CHARACTER(l1) :: C0 = 'Base'
      END TYPE

      TYPE,  EXTENDS(Base) :: Child(k2, l2)
        INTEGER(k1), KIND    :: k2 = k1
 INTEGER(k1), LEN     :: l2 = k1

        CHARACTER(l2+3) :: C1 = 'Child'
 END TYPE

      TYPE, EXTENDS(Child) :: NextGen(l3)
 INTEGER(k2), LEN     :: l3 = k2

        CHARACTER(l3)      :: C2 = CHAR(k2)
        INTEGER(k2)        :: A2 = k2
        TYPE(Base(k2, l3)) :: cmp
        CLASS(Base(k2, l3)), POINTER  :: ptr
      END TYPE

 CONTAINS

      SUBROUTINE CheckNextGen(Obj,Arg)
 CLASS(NextGen(4,*,4,*,*)) :: Obj
         TYPE (NextGen(4,*,4,*,*)) :: Arg

      END SUBROUTINE

END MODULE
```

Flang issues a set of error messages starting at
```
error: Semantic errors in t.f
./t.f:8:26: error: Shape of initialized object 'a0' must be constant
          INTEGER(k1)   :: A0(l1) = -1
                           ^^
./t.f:31:10: in the context: instantiation of parameterized derived type 'base(k1=4_4,l1=*)'
 CLASS(NextGen(4,*,4,*,*)) :: Obj
....
.....
```


_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to