diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/VMCore/DebugInfoProbe.cpp | 17 | 
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/lib/VMCore/DebugInfoProbe.cpp b/llvm/lib/VMCore/DebugInfoProbe.cpp index 408153f34eb..43eda47dbe1 100644 --- a/llvm/lib/VMCore/DebugInfoProbe.cpp +++ b/llvm/lib/VMCore/DebugInfoProbe.cpp @@ -136,7 +136,9 @@ void DebugInfoProbeImpl::finalize(Function &F) {      unsigned LineNo = *I;      if (LineNos2.count(LineNo) == 0) {        DEBUG(dbgs()  -            << "DebugInfoProbe: Losing dbg info for source line "  +            << "DebugInfoProbe(" +            << PassName +            << "): Losing dbg info for source line "               << LineNo << "\n");        ++NumDbgLineLost;      } @@ -162,9 +164,16 @@ void DebugInfoProbeImpl::finalize(Function &F) {    for (std::set<MDNode *>::iterator I = DbgVariables.begin(),            E = DbgVariables.end(); I != E; ++I) { -    if (DbgVariables2.count(*I) == 0) { -      DEBUG(dbgs() << "DebugInfoProbe: Losing dbg info for variable: "); -      DEBUG((*I)->print(dbgs())); +    if (DbgVariables2.count(*I) == 0 && (*I)->getNumOperands() >= 2) { +      DEBUG(dbgs()  +            << "DebugInfoProbe(" +            << PassName +            << "): Losing dbg info for variable: "); +      if (MDString *MDS = dyn_cast_or_null<MDString>((*I)->getOperand(2))) +        DEBUG(dbgs() << MDS->getString()); +      else +        DEBUG(dbgs() << "..."); +      DEBUG(dbgs() << "\n");        ++NumDbgValueLost;      }    }  | 

