comparison dmd/aggregate.h @ 77:714057ff2dbb trunk

[svn r81] Fixed: Union support was very buggy. Should be fairly solid now.
author lindquist
date Wed, 31 Oct 2007 09:34:18 +0100
parents b706170e24a9
children 058d3925950e
comparison
equal deleted inserted replaced
76:9e1bd80a7e98 77:714057ff2dbb
102 llvm::Type* llvmType; 102 llvm::Type* llvmType;
103 llvm::Constant* llvmVtbl; 103 llvm::Constant* llvmVtbl;
104 llvm::ConstantStruct* llvmConstVtbl; 104 llvm::ConstantStruct* llvmConstVtbl;
105 llvm::Constant* llvmInitZ; 105 llvm::Constant* llvmInitZ;
106 bool llvmHasUnions; 106 bool llvmHasUnions;
107 virtual size_t offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result); // converts a DMD field offsets to LLVM struct index vector
108 107
109 AggregateDeclaration *isAggregateDeclaration() { return this; } 108 AggregateDeclaration *isAggregateDeclaration() { return this; }
110 }; 109 };
111 110
112 struct AnonymousAggregateDeclaration : AggregateDeclaration 111 struct AnonymousAggregateDeclaration : AggregateDeclaration
238 void toDt(dt_t **pdt); 237 void toDt(dt_t **pdt);
239 void toDt2(dt_t **pdt, ClassDeclaration *cd); 238 void toDt2(dt_t **pdt, ClassDeclaration *cd);
240 239
241 Symbol *vtblsym; 240 Symbol *vtblsym;
242 241
243 virtual size_t offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result); 242 void offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result);
244 243
245 ClassDeclaration *isClassDeclaration() { return (ClassDeclaration *)this; } 244 ClassDeclaration *isClassDeclaration() { return (ClassDeclaration *)this; }
246 }; 245 };
247 246
248 struct InterfaceDeclaration : ClassDeclaration 247 struct InterfaceDeclaration : ClassDeclaration