walk DbgRegionStartInst and DbgRegionEndInst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77604 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DebugInfo.cpp b/lib/Analysis/DebugInfo.cpp
index 433e700..248240e 100644
--- a/lib/Analysis/DebugInfo.cpp
+++ b/lib/Analysis/DebugInfo.cpp
@@ -920,6 +920,10 @@
           enumerateStopPoint(SPI);
         else if (DbgFuncStartInst *FSI = dyn_cast<DbgFuncStartInst>(BI))
           enumerateFuncStart(FSI);
+        else if (DbgRegionStartInst *DRS = dyn_cast<DbgRegionStartInst>(BI))
+          enumerateRegionStart(DRS);
+        else if (DbgRegionEndInst *DRE = dyn_cast<DbgRegionEndInst>(BI))
+          enumerateRegionEnd(DRE);
       }
   
   for (Module::global_iterator GVI = M.global_begin(), GVE = M.global_end();
@@ -965,8 +969,10 @@
   }
 }
 
-/// enumerateSubprogram - Enumberate DISubprogram.
+/// enumerateSubprogram - Enumerate DISubprogram.
 void DebugInfoEnumerator::enumerateSubprogram(DISubprogram SP) {
+  if (SP.isNull())
+    return;
   if (!addSubprogram(SP))
     return;
   addCompileUnit(SP.getCompileUnit());
@@ -979,12 +985,24 @@
   addCompileUnit(DICompileUnit(Context));
 }
 
-/// enumerateFuncStart - Enumberate DbgFuncStartInst.
+/// enumerateFuncStart - Enumerate DbgFuncStartInst.
 void DebugInfoEnumerator::enumerateFuncStart(DbgFuncStartInst *FSI) {
   GlobalVariable *SP = dyn_cast<GlobalVariable>(FSI->getSubprogram());
   enumerateSubprogram(DISubprogram(SP));
 }
 
+/// enumerateRegionStart - Enumerate DbgRegionStart.
+void DebugInfoEnumerator::enumerateRegionStart(DbgRegionStartInst *DRS) {
+  GlobalVariable *SP = dyn_cast<GlobalVariable>(DRS->getContext());
+  enumerateSubprogram(DISubprogram(SP));
+}
+
+/// enumerateRegionEnd - Enumerate DbgRegionEnd.
+void DebugInfoEnumerator::enumerateRegionEnd(DbgRegionEndInst *DRE) {
+  GlobalVariable *SP = dyn_cast<GlobalVariable>(DRE->getContext());
+  enumerateSubprogram(DISubprogram(SP));
+}
+
 /// addCompileUnit - Add compile unit into CUs.
 bool DebugInfoEnumerator::addCompileUnit(DICompileUnit CU) {
   if (CU.isNull())