Mercurial > projects > ldc
comparison dmd/aggregate.h @ 100:5071469303d4 trunk
[svn r104] TONS OF FIXES.
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
author | lindquist |
---|---|
date | Fri, 16 Nov 2007 08:21:47 +0100 |
parents | ce7ed8f59b99 |
children | 027b8d8b71ec |
comparison
equal
deleted
inserted
replaced
99:a676a7743642 | 100:5071469303d4 |
---|---|
41 { | 41 { |
42 class Type; | 42 class Type; |
43 class Value; | 43 class Value; |
44 class Constant; | 44 class Constant; |
45 class ConstantStruct; | 45 class ConstantStruct; |
46 class GlobalVariable; | |
46 } | 47 } |
47 | 48 struct IRStruct; |
48 struct DUnion; | 49 struct DUnion; |
49 | 50 |
50 struct AggregateDeclaration : ScopeDsymbol | 51 struct AggregateDeclaration : ScopeDsymbol |
51 { | 52 { |
52 Type *type; | 53 Type *type; |
99 Symbol *stag; // tag symbol for debug data | 100 Symbol *stag; // tag symbol for debug data |
100 Symbol *sinit; | 101 Symbol *sinit; |
101 Symbol *toInitializer(); | 102 Symbol *toInitializer(); |
102 | 103 |
103 bool llvmInProgress; | 104 bool llvmInProgress; |
104 const llvm::Type* llvmType; | 105 llvm::GlobalVariable* llvmVtbl; |
105 llvm::Constant* llvmVtbl; | |
106 llvm::ConstantStruct* llvmConstVtbl; | 106 llvm::ConstantStruct* llvmConstVtbl; |
107 llvm::Constant* llvmInitZ; | 107 llvm::Constant* llvmInitZ; |
108 llvm::GlobalVariable* llvmClass; | |
109 llvm::Constant* llvmClassZ; | |
108 bool llvmHasUnions; | 110 bool llvmHasUnions; |
109 DUnion* llvmUnion; | 111 DUnion* llvmUnion; |
112 IRStruct* llvmIRStruct; | |
110 | 113 |
111 AggregateDeclaration *isAggregateDeclaration() { return this; } | 114 AggregateDeclaration *isAggregateDeclaration() { return this; } |
112 }; | 115 }; |
113 | 116 |
114 struct AnonymousAggregateDeclaration : AggregateDeclaration | 117 struct AnonymousAggregateDeclaration : AggregateDeclaration |