Skip to content

[llc] [AIX] coredump on AIX at -O0 with Fortran procedure pointer reference. #153067

@DanielCChen

Description

@DanielCChen

Consider the following code:

  MODULE M

  CONTAINS

  FUNCTION FChar(Arg)
  CHARACTER :: Arg
  CHARACTER :: FChar
    FChar = Arg
  END FUNCTION

  END MODULE

  PROGRAM Misc6
  USE M
  PROCEDURE(FChar), POINTER :: ProcPtr
  character :: res

  ProcPtr => FChar
!  res = FChar(IntFun1 (FChar, "2"))    !! label 1: work around 1
  res = ProcPtr(IntFun1 (FChar, "2"))   !! label 2:
  res = ProcPtr(IntFun1 (ProcPtr, "3")) !! label 3:

  CONTAINS

  FUNCTION IntFun1(Arg1, Arg2)
  CHARACTER(*) :: Arg1, Arg2
  CHARACTER(LEN(Arg2)) :: IntFun1
    IntFun1 = Arg1(Arg2)
  END FUNCTION

  END

Compile command:

...../build/bin/flang -ffree-form t.f ; a.out
Segmentation fault(coredump)

This is a AIX specific issue that fails at -O0. It works fine on LoP.

It works fine if -O2 is specified.
It works fine if I swap label 2 line and label 3 line.
It works fine if I replace lable 2 line with label 1 line.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions