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