[llvm] r184365 - DebugInfo: Specify that a value is stored indirectly

David Blaikie dblaikie at gmail.com
Wed Jun 19 14:52:48 PDT 2013


Author: dblaikie
Date: Wed Jun 19 16:52:48 2013
New Revision: 184365

URL: http://llvm.org/viewvc/llvm-project?rev=184365&view=rev
Log:
DebugInfo: Specify that a value is stored indirectly

This is a precursor to fix a regression caused by PR14763/r183329 where
the location of a non-trivial pass-by-value parameter ends up
incorrectly referring directly to the parameter (a pointer) rather than
the object pointed to by the pointer.

Modified:
    llvm/trunk/include/llvm/DebugInfo.h

Modified: llvm/trunk/include/llvm/DebugInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo.h?rev=184365&r1=184364&r2=184365&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo.h (original)
+++ llvm/trunk/include/llvm/DebugInfo.h Wed Jun 19 16:52:48 2013
@@ -63,7 +63,8 @@ namespace llvm {
       FlagObjcClassComplete  = 1 << 9,
       FlagObjectPointer      = 1 << 10,
       FlagVector             = 1 << 11,
-      FlagStaticMember       = 1 << 12
+      FlagStaticMember       = 1 << 12,
+      FlagIndirectVariable   = 1 << 13
     };
   protected:
     const MDNode *DbgNode;
@@ -553,6 +554,11 @@ namespace llvm {
       return (getUnsignedField(6) & FlagObjectPointer) != 0;
     }
 
+    /// \brief Return true if this variable is represented as a pointer.
+    bool isIndirect() const {
+      return (getUnsignedField(6) & FlagIndirectVariable) != 0;
+    }
+
     /// getInlinedAt - If this variable is inlined then return inline location.
     MDNode *getInlinedAt() const;
 





More information about the llvm-commits mailing list