diff options
Diffstat (limited to 'tools/llvm-ld/llvm-ld.cpp')
-rw-r--r-- | tools/llvm-ld/llvm-ld.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp index 28187c932d..fd2e0f7cac 100644 --- a/tools/llvm-ld/llvm-ld.cpp +++ b/tools/llvm-ld/llvm-ld.cpp @@ -33,6 +33,7 @@ #include "llvm/Support/FileUtilities.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" #include "llvm/System/Signals.h" @@ -501,14 +502,17 @@ extern void Optimize(Module*); } int main(int argc, char **argv, char **envp) { - llvm_shutdown_obj X; // Call llvm_shutdown() on exit. + // Print a stack trace if we signal out. + sys::PrintStackTraceOnErrorSignal(); + PrettyStackTraceProgram X(argc, argv); + + llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. try { // Initial global variable above for convenience printing of program name. progname = sys::Path(argv[0]).getBasename(); // Parse the command line options cl::ParseCommandLineOptions(argc, argv, "llvm linker\n"); - sys::PrintStackTraceOnErrorSignal(); // Construct a Linker (now that Verbose is set) Linker TheLinker(progname, OutputFilename, Verbose); |