Issue 131579
Summary [flang] issue in building cp2k 2025.1
Labels flang
Assignees
Reporter shivaramaarao
    Following is the small reproducer that manifests the issue in building cp2k 2025.1 with flang

rep1.f90:

 MODULE M1
  TYPE T1
      REAL(KIND=4), DIMENSION(:, :), POINTER    :: ptr => Null()
   END TYPE T1

   TYPE O1
 TYPE(T1), POINTER           :: d => Null()
   END TYPE O1

   END MODULE

   MODULE M2
   USE M1,only : &
     o1_prv => o1

   public
 TYPE D1
         TYPE(o1_prv), PRIVATE        :: prv = o1_prv ()
 END TYPE D1
   END MODULE

   MODULE M3
   USE M2 , only : d1_prv => D1

   PUBLIC
   TYPE d1_ext
           TYPE(d1_prv), PRIVATE :: prv = d1_prv()
   END TYPE
   END MODULE

rep2.f90
PROGRAM MAIN
        use m3, only : d1_ext
end program

$ flang -c rep1.f90

$ flang -c rep2.f90
error: Semantic errors in /home/shivaram/reprod/rep2.f90
./m3.mod:8:38: error: Value in structure constructor of type 'REAL(4)' is incompatible with component 'prv' of type 'o1_prv'
  type(d1_prv),private::prv=d1_prv(prv=o1_prv(d=NULL()))
 ^^^^^^^^^^^^^^^^
././m2.mod:6:23: Declaration of 'prv'
  type(o1_prv),private::prv=o1_prv(d=NULL())
 ^^^
./m3.mod:8:45: error: Keyword 'd=' may not appear in a reference to a procedure with an implicit interface
 type(d1_prv),private::prv=d1_prv(prv=o1_prv(d=NULL()))
 ^
./m3.mod:8:47: error: Null pointer argument requires an explicit interface
 type(d1_prv),private::prv=d1_prv(prv=o1_prv(d=NULL()))
 ^^^^^^

The error is not reproduced when rep2.f90 is part of rep1.f90

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to