[PATCH] D105896: [flang][driver] Fix output filename generation in `flang`

David Spickett via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 15 01:44:42 PDT 2021


DavidSpickett added inline comments.


================
Comment at: flang/tools/f18/flang.in:337
   for idx in "${!fortran_source_files[@]}"; do
-    if ! "$wd/bin/@FLANG_DEFAULT_DRIVER@" "${flang_options[@]}" "${fortran_source_files[$idx]}" -o "${unparsed_file}_${idx}.f90"
-    then status=$?
-         echo flang: in "$PWD", @FLANG_DEFAULT_DRIVER@ failed with exit status $status: "$wd/bin/@FLANG_DEFAULT_DRIVER@" "${flang_options[@]}" "$@" >&2
-         exit $status
+    "$wd/bin/@FLANG_DEFAULT_DRIVER@" "${flang_options[@]}" "${fortran_source_files[$idx]}" -o "${unparsed_file}_${idx}.f90"
+    ret_status=$?
----------------
awarzynski wrote:
> DavidSpickett wrote:
> > I'm surprised that this works with:
> > ```
> > set -euo pipefail
> > ```
> > 
> > (but then again bash is always surprising)
> That's a great catch, thank you!
> 
> I don't see a better way to work around it other than surrounding such statements with `set +e` and `set -e`.  That's also the suggested solution [[ http://redsymbol.net/articles/unofficial-bash-strict-mode/#expect-nonzero-exit-status | here ]] (it's the best intro into `set -euo pipefail` that I am aware of). This is not great, but we don't consider this script a long-term solution, so perhaps that's fine?
> 
> As for `if ! <command>`, that sets `$?` to `0` when `<command>` fails. That's because there is `!` in `! <command>`. This is not what we want here. This is documented in `help if`. Hence the need to update this.
> This is not great

My thoughts on most bash but this looks good. Pretty obvious what's going on.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105896/new/

https://reviews.llvm.org/D105896



More information about the llvm-commits mailing list