Mercurial > projects > ldc
comparison ir/irstruct.h @ 252:e3355ce5444b trunk
[svn r269] Fixed dwarf debug info for structs.
author | lindquist |
---|---|
date | Thu, 12 Jun 2008 16:58:26 +0200 |
parents | a95056b3c996 |
children | 7ade5e035beb |
comparison
equal
deleted
inserted
replaced
251:2f2d7c843e5d | 252:e3355ce5444b |
---|---|
10 { | 10 { |
11 BaseClass* base; | 11 BaseClass* base; |
12 ClassDeclaration* decl; | 12 ClassDeclaration* decl; |
13 | 13 |
14 #if OPAQUE_VTBLS | 14 #if OPAQUE_VTBLS |
15 const llvm::ArrayType* vtblTy; | 15 const LLArrayType* vtblTy; |
16 llvm::ConstantArray* vtblInit; | 16 LLConstantArray* vtblInit; |
17 #else | 17 #else |
18 const llvm::StructType* vtblTy; | 18 const LLStructType* vtblTy; |
19 llvm::ConstantStruct* vtblInit; | 19 LLConstantStruct* vtblInit; |
20 #endif | 20 #endif |
21 llvm::GlobalVariable* vtbl; | 21 LLGlobalVariable* vtbl; |
22 | 22 |
23 const llvm::StructType* infoTy; | 23 const LLStructType* infoTy; |
24 llvm::ConstantStruct* infoInit; | 24 LLConstantStruct* infoInit; |
25 llvm::Constant* info; | 25 LLConstant* info; |
26 | 26 |
27 int index; | 27 int index; |
28 | 28 |
29 #if OPAQUE_VTBLS | 29 #if OPAQUE_VTBLS |
30 IrInterface(BaseClass* b, const llvm::ArrayType* vt); | 30 IrInterface(BaseClass* b, const LLArrayType* vt); |
31 #else | 31 #else |
32 IrInterface(BaseClass* b, const llvm::StructType* vt); | 32 IrInterface(BaseClass* b, const LLStructType* vt); |
33 #endif | 33 #endif |
34 ~IrInterface(); | 34 ~IrInterface(); |
35 }; | 35 }; |
36 | 36 |
37 ////////////////////////////////////////////////////////////////////////////// | 37 ////////////////////////////////////////////////////////////////////////////// |
43 { | 43 { |
44 struct Offset | 44 struct Offset |
45 { | 45 { |
46 VarDeclaration* var; | 46 VarDeclaration* var; |
47 const LLType* type; | 47 const LLType* type; |
48 llvm::Constant* init; | 48 LLConstant* init; |
49 | 49 |
50 Offset(VarDeclaration* v, const LLType* ty) | 50 Offset(VarDeclaration* v, const LLType* ty) |
51 : var(v), type(ty), init(NULL) {} | 51 : var(v), type(ty), init(NULL) {} |
52 }; | 52 }; |
53 | 53 |
68 VarDeclVector defaultFields; | 68 VarDeclVector defaultFields; |
69 | 69 |
70 InterfaceMap interfaceMap; | 70 InterfaceMap interfaceMap; |
71 InterfaceVector interfaceVec; | 71 InterfaceVector interfaceVec; |
72 const llvm::ArrayType* interfaceInfosTy; | 72 const llvm::ArrayType* interfaceInfosTy; |
73 llvm::GlobalVariable* interfaceInfos; | 73 LLGlobalVariable* interfaceInfos; |
74 | 74 |
75 bool defined; | 75 bool defined; |
76 bool constinited; | 76 bool constinited; |
77 | 77 |
78 llvm::GlobalVariable* vtbl; | 78 LLGlobalVariable* vtbl; |
79 #if OPAQUE_VTBLS | 79 #if OPAQUE_VTBLS |
80 llvm::Constant* constVtbl; | 80 LLConstant* constVtbl; |
81 #else | 81 #else |
82 llvm::ConstantStruct* constVtbl; | 82 LLConstantStruct* constVtbl; |
83 #endif | 83 #endif |
84 llvm::GlobalVariable* init; | 84 LLGlobalVariable* init; |
85 llvm::Constant* constInit; | 85 LLConstant* constInit; |
86 llvm::GlobalVariable* classInfo; | 86 LLGlobalVariable* classInfo; |
87 llvm::Constant* constClassInfo; | 87 LLConstant* constClassInfo; |
88 bool hasUnions; | 88 bool hasUnions; |
89 DUnion* dunion; | 89 DUnion* dunion; |
90 bool classDeclared; | 90 bool classDeclared; |
91 bool classDefined; | 91 bool classDefined; |
92 | |
93 LLGlobalVariable* dwarfComposite; | |
92 }; | 94 }; |
93 | 95 |
94 #endif | 96 #endif |