diff options
| -rw-r--r-- | lld/MinGW/Driver.cpp | 3 | ||||
| -rw-r--r-- | lld/MinGW/Options.td | 1 | ||||
| -rw-r--r-- | lld/test/MinGW/lto-debug-pass-arguments.ll | 16 |
3 files changed, 20 insertions, 0 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 404452bdd02..7d46d877dc7 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -160,6 +160,9 @@ bool link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) { error("unknown parameter: -m" + S); } + for (auto *A : Args.filtered(OPT_mllvm)) + Add("-mllvm:" + StringRef(A->getValue())); + if (Args.getLastArgValue(OPT_m) == "i386pe") Add("-alternatename:__image_base__=___ImageBase"); else diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td index f6f8079891c..74055770a68 100644 --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -11,6 +11,7 @@ def entry: S<"entry">, MetaVarName<"<entry>">, def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">, HelpText<"Root name of library to use">; def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">; +def mllvm: S<"mllvm">; def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"<path>">, HelpText<"Path to file to write output">; def out_implib: Separate<["--"], "out-implib">, HelpText<"Import library name">; diff --git a/lld/test/MinGW/lto-debug-pass-arguments.ll b/lld/test/MinGW/lto-debug-pass-arguments.ll new file mode 100644 index 00000000000..e9fb9ed473a --- /dev/null +++ b/lld/test/MinGW/lto-debug-pass-arguments.ll @@ -0,0 +1,16 @@ +; REQUIRES: x86 +; RUN: llvm-as %s -o %t.obj +; RUN: ld.lld -m i386pep -shared -o %t.dll %t.obj -mllvm -debug-pass=Arguments 2>&1 | FileCheck %s + +target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-windows-gnu" + +define void @dummy() { + ret void +} + +define void @_DllMainCRTStartup() { + ret void +} + +; CHECK: Pass Arguments: |

