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

Jim Laskey jlaskey at apple.com
Fri Feb 24 08:47:02 PST 2006



Changes in directory llvm/include/llvm/CodeGen:

MachineDebugInfo.h updated: 1.20 -> 1.21
---
Log message:

Add pointer and reference types.  Added short-term code to ignore NULL types
(to allow llvm-gcc4 to build.)


---
Diffs of the changes:  (+19 -16)

 MachineDebugInfo.h |   35 +++++++++++++++++++----------------
 1 files changed, 19 insertions(+), 16 deletions(-)


Index: llvm/include/llvm/CodeGen/MachineDebugInfo.h
diff -u llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.20 llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.21
--- llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.20	Thu Feb 23 20:52:40 2006
+++ llvm/include/llvm/CodeGen/MachineDebugInfo.h	Fri Feb 24 10:46:40 2006
@@ -64,7 +64,9 @@
   DI_TAG_global_variable,
   DI_TAG_subprogram,
   DI_TAG_basictype,
-  DI_TAG_typedef
+  DI_TAG_typedef,
+  DI_TAG_pointer,
+  DI_TAG_reference
 };
 
 //===----------------------------------------------------------------------===//
@@ -283,8 +285,10 @@
 class TypeDesc : public DebugInfoDesc {
 private:
   DebugInfoDesc *Context;               // Context debug descriptor.
-  std::string Name;                     // Type name.
-  uint64_t Size;                        // Type size.
+  std::string Name;                     // Type name (may be empty.)
+  CompileUnitDesc *File;                // Declared compile unit (may be NULL.)
+  int Line;                             // Declared line# (may be zero.)
+  uint64_t Size;                        // Type size (may be zero.)
 
 protected:
   TypeDesc(unsigned T);
@@ -293,9 +297,13 @@
   // Accessors
   DebugInfoDesc *getContext()                const { return Context; }
   const std::string &getName()               const { return Name; }
+  CompileUnitDesc *getFile()                 const { return File; }
+  int getLine()                              const { return Line; }
   uint64_t getSize()                         const { return Size; }
   void setContext(DebugInfoDesc *C)                { Context = C; }
   void setName(const std::string &N)               { Name = N; }
+  void setFile(CompileUnitDesc *U)                 { File = U; }
+  void setLine(int L)                              { Line = L; }
   void setSize(uint64_t S)                         { Size = S; }
   
   /// ApplyToFields - Target the visitor to the fields of the  TypeDesc.
@@ -346,32 +354,27 @@
 
 
 //===----------------------------------------------------------------------===//
-/// TypedefDesc - This class packages debug information associated with a
-/// derived typedef.
-class TypedefDesc : public TypeDesc {
+/// DerivedTypeDesc - This class packages debug information associated with a
+/// derived types (eg., typedef, pointer, reference.)
+class DerivedTypeDesc : public TypeDesc {
 private:
   TypeDesc *FromType;                   // Type derived from.
-  CompileUnitDesc *File;                // Declared compile unit.
-  int Line;                             // Declared line#.
 
 public:
-  TypedefDesc();
+  DerivedTypeDesc(unsigned T);
   
   // Accessors
   TypeDesc *getFromType()                    const { return FromType; }
-  CompileUnitDesc *getFile()                 const { return File; }
-  int getLine()                              const { return Line; }
   void setFromType(TypeDesc *F)                    { FromType = F; }
-  void setFile(CompileUnitDesc *U)                 { File = U; }
-  void setLine(int L)                              { Line = L; }
 
   // Implement isa/cast/dyncast.
-  static bool classof(const TypedefDesc *)  { return true; }
+  static bool classof(const DerivedTypeDesc *)  { return true; }
   static bool classof(const DebugInfoDesc *D) {
-    return D->getTag() == DI_TAG_typedef;
+    unsigned T =  D->getTag();
+    return T == DI_TAG_typedef || T == DI_TAG_pointer || T == DI_TAG_reference;
   }
   
-  /// ApplyToFields - Target the visitor to the fields of the  TypedefDesc.
+  /// ApplyToFields - Target the visitor to the fields of the  DerivedTypeDesc.
   ///
   virtual void ApplyToFields(DIVisitor *Visitor);
 






More information about the llvm-commits mailing list