diff --git a/flang/tools/f18/flang b/flang/tools/f18/flang --- a/flang/tools/f18/flang +++ b/flang/tools/f18/flang @@ -263,6 +263,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 @@ -278,18 +294,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. @@ -412,7 +418,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