[llvm-commits] [llvm] r167525 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfDebug.cpp tools/llvm-cov/llvm-cov.cpp

Bill Wendling isanbard at gmail.com
Tue Nov 6 21:19:04 PST 2012


Author: void
Date: Tue Nov  6 23:19:04 2012
New Revision: 167525

URL: http://llvm.org/viewvc/llvm-project?rev=167525&view=rev
Log:
Add comment describing what's going on here.

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    llvm/trunk/tools/llvm-cov/llvm-cov.cpp

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=167525&r1=167524&r2=167525&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Tue Nov  6 23:19:04 2012
@@ -307,8 +307,11 @@
   assert(SPDie && "Unable to find subprogram DIE!");
   DISubprogram SP(SPNode);
 
-  // Pick up abstract subprogram DIE.
+  // If we're updating an abstract DIE, then we will be adding the children and
+  // object pointer later on. But what we don't want to do is process the
+  // concrete DIE twice.
   if (DIE *AbsSPDIE = AbstractSPDies.lookup(SPNode)) {
+    // Pick up abstract subprogram DIE.
     SPDie = new DIE(dwarf::DW_TAG_subprogram);
     SPCU->addDIEEntry(SPDie, dwarf::DW_AT_abstract_origin,
                       dwarf::DW_FORM_ref4, AbsSPDIE);

Modified: llvm/trunk/tools/llvm-cov/llvm-cov.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/llvm-cov.cpp?rev=167525&r1=167524&r2=167525&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/llvm-cov.cpp (original)
+++ llvm/trunk/tools/llvm-cov/llvm-cov.cpp Tue Nov  6 23:19:04 2012
@@ -16,11 +16,15 @@
 #include "llvm/Support/GCOV.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryObject.h"
+#include "llvm/Support/Path.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Signals.h"
 #include "llvm/Support/system_error.h"
 using namespace llvm;
 
+static cl::opt<std::string>
+InputFilename(cl::Positional, cl::desc("source filename"), cl::init(""));
+
 static cl::opt<bool>
 DumpGCOV("dump", cl::init(false), cl::desc("dump gcov file"));
 
@@ -40,6 +44,23 @@
 
   cl::ParseCommandLineOptions(argc, argv, "llvm cov\n");
 
+  if (InputFilename.empty()) {
+    // FIXME: Error out here.
+  }
+
+  sys::Path SrcFile(InputFilename);
+
+  sys::Path GCNOFile(SrcFile);
+  GCNOFile.eraseSuffix();
+  GCNOFile.appendSuffix(".gcno");
+
+  sys::Path GCDAFile(SrcFile);
+  GCDAFile.eraseSuffix();
+  GCDAFile.appendSuffix(".gcda");
+
+  sys::Path OutputFile(SrcFile);
+  OutputFile.appendSuffix(".gcov");
+
   GCOVFile GF;
   if (InputGCNO.empty())
     errs() << " " << argv[0] << ": No gcov input file!\n";





More information about the llvm-commits mailing list