diff options
| -rw-r--r-- | lld/MinGW/Driver.cpp | 9 | ||||
| -rw-r--r-- | lld/MinGW/Options.td | 1 | ||||
| -rw-r--r-- | lld/test/MinGW/driver.test | 4 | 
3 files changed, 12 insertions, 2 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 0b7e0831a51..01cd3b26f93 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -144,14 +144,19 @@ bool mingw::link(ArrayRef<const char *> ArgsArr, raw_ostream &Diag) {    else      Add("-out:a.exe"); +  if (auto *A = Args.getLastArg(OPT_pdb)) { +    Add("-debug"); +    Add("-pdb:" + StringRef(A->getValue())); +  } else if (!Args.hasArg(OPT_strip_all)) { +    Add("-debug:dwarf"); +  } +    if (Args.hasArg(OPT_shared))      Add("-dll");    if (Args.hasArg(OPT_verbose))      Add("-verbose");    if (Args.hasArg(OPT_export_all_symbols))      Add("-export-all-symbols"); -  if (!Args.hasArg(OPT_strip_all)) -    Add("-debug:dwarf");    if (Args.hasArg(OPT_large_address_aware))      Add("-largeaddressaware");    if (Args.hasArg(OPT_kill_at)) diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td index 6840471198a..d963f82771a 100644 --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -41,6 +41,7 @@ def verbose: F<"verbose">, HelpText<"Verbose mode">;  def _HASH_HASH_HASH : Flag<["-"], "###">,      HelpText<"Print (but do not run) the commands to run for this compilation">;  def mllvm: S<"mllvm">; +def pdb: S<"pdb">, HelpText<"Specify output PDB debug information file">;  def Xlink : J<"Xlink=">, MetaVarName<"<arg>">,      HelpText<"Pass <arg> to the COFF linker">; diff --git a/lld/test/MinGW/driver.test b/lld/test/MinGW/driver.test index 1a95d23caa4..14593d0df80 100644 --- a/lld/test/MinGW/driver.test +++ b/lld/test/MinGW/driver.test @@ -90,6 +90,10 @@ RUN: ld.lld -### -m i386pep foo.o -s | FileCheck -check-prefix STRIP %s  RUN: ld.lld -### -m i386pep foo.o --strip-all | FileCheck -check-prefix STRIP %s  STRIP-NOT: -debug:dwarf +RUN: ld.lld -### -m i386pep foo.o -pdb out.pdb | FileCheck -check-prefix PDB %s +PDB: -debug -pdb:out.pdb +PDB-NOT: -debug:dwarf +  RUN: ld.lld -### -m i386pep foo.o --large-address-aware | FileCheck -check-prefix LARGE-ADDRESS-AWARE %s  LARGE-ADDRESS-AWARE: -largeaddressaware  | 

