Index: flang/tools/f18/flang =================================================================== --- flang/tools/f18/flang +++ flang/tools/f18/flang @@ -270,6 +270,22 @@ done } +# === get_external_fc_name ==================================================== +# +# Returns the name of external Fortran compiler based on values of +# environment variables. +# ============================================================================= +get_external_fc_name() { + if [[ -v FLANG_FC ]]; then + echo ${FLANG_FC} + elif [[ -v F18_FC ]]; then + # We support F18_FC for backwards compatibility. + echo ${F18_FC} + else + echo gfortran + fi +} + # === preprocess ============================================================== # # Runs the preprocessing. Fortran files are preprocessed using Flang. Other @@ -285,18 +301,8 @@ local -n other_srcs=$2 local -n opts=$3 - local ext_fc="" - if [[ -v $FLANG_FC ]]; then - ext_fc="${FLANG_FC}" - elif [[ -v $F18_FC ]]; then - # We support F18_FC for backwards compatibility. - ext_fc="${F18_FC}" - else - ext_fc=gfortran - fi - + local ext_fc="$(get_external_fc_name)" - local ext_fc="${FLANG_FC:-gfortran}" local -r wd=$(cd "$(dirname "$0")/.." && pwd) # Use the provided output file name. @@ -419,7 +425,7 @@ done # STEP 2: Compile Fortran Source Files - readonly ext_fc="${F18_FC:-gfortran}" + local ext_fc="$(get_external_fc_name)" # Temporary object files generated by this script. To be deleted at the end. local temp_object_files=() for idx in "${!fortran_source_files[@]}"; do