Add 'getInt64Field()' method to get the signed integer instead of unsigned.
[oota-llvm.git] / lib / VMCore / DebugInfo.cpp
index 7d8cf72aab208bf6aa5872bad7c420735a52140e..73eb92ee84662159579059a2d61cf39d4b8ad5d1 100644 (file)
@@ -75,6 +75,18 @@ uint64_t DIDescriptor::getUInt64Field(unsigned Elt) const {
   return 0;
 }
 
+int64_t DIDescriptor::getInt64Field(unsigned Elt) const {
+  if (DbgNode == 0)
+    return 0;
+
+  if (Elt < DbgNode->getNumOperands())
+    if (ConstantInt *CI
+        = dyn_cast_or_null<ConstantInt>(DbgNode->getOperand(Elt)))
+      return CI->getSExtValue();
+
+  return 0;
+}
+
 DIDescriptor DIDescriptor::getDescriptorField(unsigned Elt) const {
   if (DbgNode == 0)
     return DIDescriptor();