Mercurial > projects > ldc
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 |