HomePhabricator

[DebugInfo][flang]Added support for representing Fortran assumed length strings

Authored by SouraVX on Aug 20 2020, 3:41 AM.

Description

[DebugInfo][flang]Added support for representing Fortran assumed length strings

This patch adds support for representing Fortran character(n).

Primarily patch is based out of D54114 with appropriate modifications.

Test case IR is generated using our downstream classic-flang. We're in process
of upstreaming flang PR's but classic-flang has dependencies on llvm, so
this has to get in first.

Patch includes functional test case for both IR and corresponding
dwarf, furthermore it has been manually tested as well using GDB.

Source snippet:

program assumedLength
  call sub('Hello')
  call sub('Goodbye')
  contains
  subroutine sub(string)
          implicit none
          character(len=*), intent(in) :: string
          print *, string
  end subroutine sub
end program assumedLength

GDB:

(gdb) ptype string
type = character (5)
(gdb) p string
$1 = 'Hello'

Reviewed By: aprantl, schweitz

Differential Revision: https://reviews.llvm.org/D86305

Details