Mercurial > projects > ldc
comparison gen/tollvm.cpp @ 103:855adfdb8d38 trunk
[svn r107] Getting .classinfo on a class instance now works (classinfo is stored in vtable)
author | lindquist |
---|---|
date | Sun, 18 Nov 2007 08:25:07 +0100 |
parents | 027b8d8b71ec |
children | 4d1e9eb001e0 |
comparison
equal
deleted
inserted
replaced
102:027b8d8b71ec | 103:855adfdb8d38 |
---|---|
109 { | 109 { |
110 return (*i)->recty.get(); | 110 return (*i)->recty.get(); |
111 } | 111 } |
112 } | 112 } |
113 } | 113 } |
114 | 114 } |
115 // forward declaration | 115 |
116 TypeStruct* ts = (TypeStruct*)t; | 116 TypeStruct* ts = (TypeStruct*)t; |
117 assert(ts->sym); | 117 assert(ts->sym); |
118 DtoResolveDsymbol(ts->sym); | 118 DtoResolveDsymbol(ts->sym); |
119 } | |
120 return t->llvmType->get(); | 119 return t->llvmType->get(); |
121 } | 120 } |
122 | 121 |
123 case Tclass: { | 122 case Tclass: { |
124 if (!t->llvmType || *t->llvmType == NULL) { | 123 if (!t->llvmType || *t->llvmType == NULL) { |
132 { | 131 { |
133 return llvm::PointerType::get((*i)->recty.get()); | 132 return llvm::PointerType::get((*i)->recty.get()); |
134 } | 133 } |
135 } | 134 } |
136 } | 135 } |
137 | 136 } |
138 // forward declaration | 137 |
139 TypeClass* tc = (TypeClass*)t; | 138 TypeClass* tc = (TypeClass*)t; |
140 assert(tc->sym); | 139 assert(tc->sym); |
141 DtoResolveDsymbol(tc->sym); | 140 DtoResolveDsymbol(tc->sym); |
142 } | |
143 return llvm::PointerType::get(t->llvmType->get()); | 141 return llvm::PointerType::get(t->llvmType->get()); |
144 } | 142 } |
145 | 143 |
146 // functions | 144 // functions |
147 case Tfunction: | 145 case Tfunction: |