blob: 007b4e99f9fd2a6be81fecc5f553135ae4fcb76e [file] [edit]
! Regression test: array named constants declared directly in the intrinsic
! iso_fortran_env module (e.g. character_kinds) must be emitted as a DEFINITION
! with an initializer, not as a bodyless external declaration. Otherwise the
! reference is undefined at link time.
! See createIntrinsicModuleDefinitions in lib/Lower/Bridge.cpp.
! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
subroutine test_character_kinds(i, r)
use iso_fortran_env, only: character_kinds
integer :: i, r
r = character_kinds(i)
end subroutine
! The global must be DEFINED (linkonce_odr linkage + a parenthesized
! initializer), not a bodyless "fir.global @_QM...character_kinds ... constant"
! external declaration.
! CHECK: fir.global linkonce_odr @_QMiso_fortran_envECcharacter_kinds({{.*}}) {{.*}}constant : !fir.array<{{[0-9]+}}xi32>
! CHECK-NOT: fir.global @_QMiso_fortran_envECcharacter_kinds {{.*}}constant