diff options
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 5 | ||||
| -rw-r--r-- | clang/test/Driver/woa-restrict-it.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index b0425cbe08a..7862ffb446e 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -3451,6 +3451,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-backend-option"); CmdArgs.push_back("-arm-no-restrict-it"); } + } else if (TT.isOSWindows() && (TT.getArch() == llvm::Triple::arm || + TT.getArch() == llvm::Triple::thumb)) { + // Windows on ARM expects restricted IT blocks + CmdArgs.push_back("-backend-option"); + CmdArgs.push_back("-arm-restrict-it"); } // Forward -f options with positive and negative forms; we translate diff --git a/clang/test/Driver/woa-restrict-it.c b/clang/test/Driver/woa-restrict-it.c new file mode 100644 index 00000000000..c046991ae13 --- /dev/null +++ b/clang/test/Driver/woa-restrict-it.c @@ -0,0 +1,4 @@ +// RUN: %clang -target armv7-windows -### %s 2>&1 | FileCheck %s + +// CHECK: "-backend-option" "-arm-restrict-it" + |

