Skip to content

[flang] FIR verification failure for DTIO with structure constructor #143733

Open
@DanielCChen

Description

@DanielCChen

Consider the following code:

module m
   type base
      character(3), allocatable :: c
      contains
         procedure, pass :: write => writeb
         generic :: write(formatted) => write
   end type
   contains
      subroutine writeb (dtv, unit, iotype, v_list, iostat, iomsg)
         class(base), intent(in) :: dtv
         integer, intent(in) :: unit
         character(*), intent(in) :: iotype
         integer, intent(in)  :: v_list(:)
         integer, intent(out) :: iostat
         character(*), intent(inout) :: iomsg
         character(20) :: fmt

         write (fmt, *) "(A", v_list(1), ")"
         write (unit, fmt, iostat=iostat, iomsg=iomsg) dtv%c
         iomsg = 'dtiowriteb'

      end subroutine

end module

program main
   use m
   integer :: stat
   character(200) :: msg

   open ( 1, file = 'main.1', form='formatted', access='sequential' )
   write ( 1, "(2(DT(3),DT(4)))", iostat = stat, iomsg = msg )  ( base('ABC'), base('DEF'), i=0,1 )
end program

Flang fails at:

Assertion failed: resultNumber < getNumResults() && "Result number is out of range for operation", file  /home/cdchen/FLANG/llvm-project/flang/../mlir/include/mlir/IR/Operation.h, line 1011, detail::OpResultImpl *mlir::Operation::getOpResultImpl(unsigned int)()
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: flang -fc1 -triple powerpc64-ibm-aix7.2.0.0 -emit-obj -ffree-form -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -target-cpu pwr7 -resource-dir /home/cdchen/FLANG/build/lib/clang/21 -mframe-pointer=all -o /tmp/structConstr002-77e9b8.o -x f95 t.f
flang-21: error: unable to execute command: IOT/Abort trap

All ifort, gfortran and XLF compiles the code successfully.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions