[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineDebugInfo.h

Jim Laskey jlaskey at apple.com
Tue Jul 11 08:58:22 PDT 2006



Changes in directory llvm/include/llvm/CodeGen:

MachineDebugInfo.h updated: 1.37 -> 1.38
---
Log message:

1. Support for c++ mangled names.
2. Support for private/protected class members.


---
Diffs of the changes:  (+18 -1)

 MachineDebugInfo.h |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/MachineDebugInfo.h
diff -u llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.37 llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.38
--- llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.37	Fri Jun 23 07:51:53 2006
+++ llvm/include/llvm/CodeGen/MachineDebugInfo.h	Tue Jul 11 10:58:09 2006
@@ -57,7 +57,8 @@
 // Debug info constants.
 
 enum {
-  LLVMDebugVersion = (4 << 16),         // Current version of debug information.
+  LLVMDebugVersion = (5 << 16),         // Current version of debug information.
+  LLVMDebugVersion4 = (4 << 16),        // Constant for version 4.
   LLVMDebugVersionMask = 0xffff0000     // Mask for version number.
 };
 
@@ -276,6 +277,10 @@
 ///
 class TypeDesc : public DebugInfoDesc {
 private:
+  enum {
+    FlagPrivate    = 1 << 0,
+    FlagProtected  = 1 << 1
+  };
   DebugInfoDesc *Context;               // Context debug descriptor.
   std::string Name;                     // Type name (may be empty.)
   DebugInfoDesc *File;                  // Defined compile unit (may be NULL.)
@@ -283,6 +288,7 @@
   uint64_t Size;                        // Type bit size (may be zero.)
   uint64_t Align;                       // Type bit alignment (may be zero.)
   uint64_t Offset;                      // Type bit offset (may be zero.)
+  unsigned Flags;                       // Miscellaneous flags.
 
 public:
   TypeDesc(unsigned T);
@@ -297,6 +303,12 @@
   uint64_t getSize()                         const { return Size; }
   uint64_t getAlign()                        const { return Align; }
   uint64_t getOffset()                       const { return Offset; }
+  bool isPrivate() const {
+    return (Flags & FlagPrivate) != 0;
+  }
+  bool isProtected() const {
+    return (Flags & FlagProtected) != 0;
+  }
   void setContext(DebugInfoDesc *C)                { Context = C; }
   void setName(const std::string &N)               { Name = N; }
   void setFile(CompileUnitDesc *U) {
@@ -306,6 +318,8 @@
   void setSize(uint64_t S)                         { Size = S; }
   void setAlign(uint64_t A)                        { Align = A; }
   void setOffset(uint64_t O)                       { Offset = O; }
+  void setIsPrivate()                              { Flags |= FlagPrivate; }
+  void setIsProtected()                            { Flags |= FlagProtected; }
   
   /// ApplyToFields - Target the visitor to the fields of the TypeDesc.
   ///
@@ -572,6 +586,7 @@
 private:
   DebugInfoDesc *Context;               // Context debug descriptor.
   std::string Name;                     // Global name.
+  std::string DisplayName;              // C++ unmangled name.
   DebugInfoDesc *File;                  // Defined compile unit (may be NULL.)
   unsigned Line;                        // Defined line# (may be zero.)
   DebugInfoDesc *TyDesc;                // Type debug descriptor.
@@ -585,6 +600,7 @@
   // Accessors
   DebugInfoDesc *getContext()                const { return Context; }
   const std::string &getName()               const { return Name; }
+  const std::string &getDisplayName()        const { return DisplayName; }
   CompileUnitDesc *getFile() const {
     return static_cast<CompileUnitDesc *>(File);
   }
@@ -596,6 +612,7 @@
   bool isDefinition()                        const { return IsDefinition; }
   void setContext(DebugInfoDesc *C)                { Context = C; }
   void setName(const std::string &N)               { Name = N; }
+  void setDisplayName(const std::string &N)        { DisplayName = N; }
   void setFile(CompileUnitDesc *U) {
     File = static_cast<DebugInfoDesc *>(U);
   }






More information about the llvm-commits mailing list