Mercurial > projects > ldc
comparison dmd/aggregate.h @ 54:28e99b04a132 trunk
[svn r58] Fixed cond expression resulting in a non-basic type.
Fixed identity expression for dynamic arrays.
Revamped the system to keep track of lvalues and rvalues and their relations.
Typedef declaration now generate the custom typeinfo.
Other bugfixes.
author | lindquist |
---|---|
date | Wed, 24 Oct 2007 01:37:34 +0200 |
parents | 3cfcb944304e |
children | d7e764e62462 |
comparison
equal
deleted
inserted
replaced
53:06ccc817acd4 | 54:28e99b04a132 |
---|---|
38 namespace llvm | 38 namespace llvm |
39 { | 39 { |
40 class Type; | 40 class Type; |
41 class Value; | 41 class Value; |
42 class Constant; | 42 class Constant; |
43 class ConstantStruct; | |
43 } | 44 } |
44 | 45 |
45 struct AggregateDeclaration : ScopeDsymbol | 46 struct AggregateDeclaration : ScopeDsymbol |
46 { | 47 { |
47 Type *type; | 48 Type *type; |
96 Symbol *toInitializer(); | 97 Symbol *toInitializer(); |
97 | 98 |
98 bool llvmInProgress; | 99 bool llvmInProgress; |
99 llvm::Type* llvmType; | 100 llvm::Type* llvmType; |
100 llvm::Value* llvmVtbl; | 101 llvm::Value* llvmVtbl; |
102 llvm::ConstantStruct* llvmConstVtbl; | |
101 llvm::Constant* llvmInitZ; | 103 llvm::Constant* llvmInitZ; |
102 virtual void offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result); // converts a DMD field offsets to LLVM struct index vector | 104 virtual void offsetToIndex(Type* t, unsigned os, std::vector<unsigned>& result); // converts a DMD field offsets to LLVM struct index vector |
103 | 105 |
104 AggregateDeclaration *isAggregateDeclaration() { return this; } | 106 AggregateDeclaration *isAggregateDeclaration() { return this; } |
105 }; | 107 }; |