This cherry-picks the following patches on the release branch:
This patch adds 2 new options to control when Clang adds mustprogress:
- -ffinite-loops: assume all loops are finite; mustprogress is added to all loops, regardless of the selected language standard.
- -fno-finite-loops: assume no loop is finite; mustprogress is not added to any loop or function. We could add mustprogress to functions without loops, but we would have to detect that in Clang, which is probably not worth it.