From c9abc043af88f90d177a5bd147f627b78ca49fde Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 8 Apr 2009 05:11:16 +0000 Subject: Make debug info work when using -save-temps. - This is pretty ugly, but the most obvious solution. Chime in if you have a nicer one. - The problem is that with -save-temps, clang-cc has no idea what the name of the original input file is. However, the user expects to be able to set breakpoints based on the input file name. - We support this by providing a new option -main-file-name (similar to -dumpbase used by gcc) which allows the driver to pass in the original file name. - building with clang using --save-temps gets the compile unit name from the .i file... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68595 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Tools.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/Driver/Tools.cpp') diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index eb9bbf2b7b..4ae96c2e64 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -74,6 +74,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // The make clang go fast button. CmdArgs.push_back("-disable-free"); + // Set the main file name, so that debug info works even with + // -save-temps. + CmdArgs.push_back("-main-file-name"); + CmdArgs.push_back(darwin::CC1::getBaseInputName(Args, Inputs)); + if (isa(JA)) { // Add default argument set. // -- cgit v1.2.3-70-g09d2