Implemented Support of IA interrupt and exception handlers:
[oota-llvm.git] / lib / IR / DebugLoc.cpp
index 984ee24883668fd8437c6cf993cdb5a8dc9fd42a..72d5c0e618833fe2eec34376979408816fe3dfa1 100644 (file)
@@ -16,11 +16,11 @@ using namespace llvm;
 //===----------------------------------------------------------------------===//
 // DebugLoc Implementation
 //===----------------------------------------------------------------------===//
-DebugLoc::DebugLoc(MDLocation *L) : Loc(L) {}
-DebugLoc::DebugLoc(MDNode *L) : Loc(L) {}
+DebugLoc::DebugLoc(const DILocation *L) : Loc(const_cast<DILocation *>(L)) {}
+DebugLoc::DebugLoc(const MDNode *L) : Loc(const_cast<MDNode *>(L)) {}
 
-MDLocation *DebugLoc::get() const {
-  return cast_or_null<MDLocation>(Loc.get());
+DILocation *DebugLoc::get() const {
+  return cast_or_null<DILocation>(Loc.get());
 }
 
 unsigned DebugLoc::getLine() const {
@@ -38,31 +38,33 @@ MDNode *DebugLoc::getScope() const {
   return get()->getScope();
 }
 
-MDLocation *DebugLoc::getInlinedAt() const {
+DILocation *DebugLoc::getInlinedAt() const {
   assert(get() && "Expected valid DebugLoc");
   return get()->getInlinedAt();
 }
 
 MDNode *DebugLoc::getInlinedAtScope() const {
-  return cast<MDLocation>(Loc)->getInlinedAtScope();
+  return cast<DILocation>(Loc)->getInlinedAtScope();
 }
 
 DebugLoc DebugLoc::getFnDebugLoc() const {
-  // FIXME: Add a method on \a MDLocation that does this work.
+  // FIXME: Add a method on \a DILocation that does this work.
   const MDNode *Scope = getInlinedAtScope();
-  if (DISubprogram SP = getDISubprogram(Scope))
+  if (auto *SP = getDISubprogram(Scope))
     return DebugLoc::get(SP->getScopeLine(), 0, SP);
 
   return DebugLoc();
 }
 
-DebugLoc DebugLoc::get(unsigned Line, unsigned Col,
-                       MDNode *Scope, MDNode *InlinedAt) {
+DebugLoc DebugLoc::get(unsigned Line, unsigned Col, const MDNode *Scope,
+                       const MDNode *InlinedAt) {
   // If no scope is available, this is an unknown location.
   if (!Scope)
     return DebugLoc();
 
-  return MDLocation::get(Scope->getContext(), Line, Col, Scope, InlinedAt);
+  return DILocation::get(Scope->getContext(), Line, Col,
+                         const_cast<MDNode *>(Scope),
+                         const_cast<MDNode *>(InlinedAt));
 }
 
 void DebugLoc::dump() const {
@@ -86,8 +88,8 @@ void DebugLoc::print(raw_ostream &OS) const {
     return;
 
   // Print source line info.
-  DIScope Scope = cast<MDScope>(getScope());
-  OS << Scope.getFilename();
+  auto *Scope = cast<DIScope>(getScope());
+  OS << Scope->getFilename();
   OS << ':' << getLine();
   if (getCol() != 0)
     OS << ':' << getCol();