Add comment describing what's going on here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2012-11-07 05:19:04 +00:00
parent a4c7693118
commit 168c190c58
2 changed files with 25 additions and 1 deletions

View File

@ -307,8 +307,11 @@ DIE *DwarfDebug::updateSubprogramScopeDIE(CompileUnit *SPCU,
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);

View File

@ -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 @@ int main(int argc, char **argv) {
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";