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