! { dg-do compile } ! { dg-options "-O2" } ! ! PR fortran/54884 ! ! Check that get_key_len is not optimized away as it ! is used in a publicly visible specification expression. ! module m_common_attrs private !... public :: get_key contains pure function get_key_len() result(n) n = 5 end function get_key_len pure function other() result(n) n = 5 end function other ! ... function get_key() result(key) ! ... character(len=get_key_len()) :: key key = '' end function get_key end module m_common_attrs ! { dg-final { scan-assembler-not "__m_common_attrs_MOD_other" } } ! { dg-final { scan-assembler "__m_common_attrs_MOD_get_key_len" } }