comparison dmd/aggregate.h @ 24:25bb577878e8 trunk

[svn r28] * Fixed accessing aggregate fields. it was still not quite right. hopefully is now :)
author lindquist
date Thu, 04 Oct 2007 10:13:21 +0200
parents 5e69b77a5c51
children 3cfcb944304e
comparison
equal deleted inserted replaced
23:77e3d1ddae3f 24:25bb577878e8
97 97
98 bool llvmInProgress; 98 bool llvmInProgress;
99 llvm::Type* llvmType; 99 llvm::Type* llvmType;
100 llvm::Value* llvmVtbl; 100 llvm::Value* llvmVtbl;
101 llvm::Constant* llvmInitZ; 101 llvm::Constant* llvmInitZ;
102 virtual void offsetToIndex(unsigned os, std::vector<unsigned>& result); // converts a DMD field offsets to LLVM struct index vector 102 virtual void offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result); // converts a DMD field offsets to LLVM struct index vector
103 103
104 AggregateDeclaration *isAggregateDeclaration() { return this; } 104 AggregateDeclaration *isAggregateDeclaration() { return this; }
105 }; 105 };
106 106
107 struct AnonymousAggregateDeclaration : AggregateDeclaration 107 struct AnonymousAggregateDeclaration : AggregateDeclaration
232 void toDt(dt_t **pdt); 232 void toDt(dt_t **pdt);
233 void toDt2(dt_t **pdt, ClassDeclaration *cd); 233 void toDt2(dt_t **pdt, ClassDeclaration *cd);
234 234
235 Symbol *vtblsym; 235 Symbol *vtblsym;
236 236
237 virtual void offsetToIndex(unsigned os, std::vector<unsigned>& result); 237 virtual void offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result);
238 238
239 ClassDeclaration *isClassDeclaration() { return (ClassDeclaration *)this; } 239 ClassDeclaration *isClassDeclaration() { return (ClassDeclaration *)this; }
240 }; 240 };
241 241
242 struct InterfaceDeclaration : ClassDeclaration 242 struct InterfaceDeclaration : ClassDeclaration