Mercurial > projects > ldc
comparison gen/tollvm.cpp @ 1419:a6dfd3cb5b99 0.9.1
Error instead of assert on delegate literals as constant expressions.
Make function literal linkage internal inside functions and external otherwise.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 27 May 2009 19:20:18 +0200 |
parents | 63f4afd01036 |
children | 83bdf7bed9c5 |
comparison
equal
deleted
inserted
replaced
1418:f5f8c21ce6ef | 1419:a6dfd3cb5b99 |
---|---|
263 else if (needsTemplateLinkage(fdecl) && fdecl->fbody && !fdecl->naked) | 263 else if (needsTemplateLinkage(fdecl) && fdecl->fbody && !fdecl->naked) |
264 return TEMPLATE_LINKAGE_TYPE; | 264 return TEMPLATE_LINKAGE_TYPE; |
265 // extern(C) functions are always external | 265 // extern(C) functions are always external |
266 else if (ft->linkage == LINKc) | 266 else if (ft->linkage == LINKc) |
267 return llvm::GlobalValue::ExternalLinkage; | 267 return llvm::GlobalValue::ExternalLinkage; |
268 // Function & delegate literals, foreach bodies and lazy parameters: internal linkage | |
269 else if (fdecl->isFuncLiteralDeclaration()) | |
270 return llvm::GlobalValue::InternalLinkage; | |
271 } | 268 } |
272 // class | 269 // class |
273 else if (ClassDeclaration* cd = sym->isClassDeclaration()) | 270 else if (ClassDeclaration* cd = sym->isClassDeclaration()) |
274 { | 271 { |
275 // template | 272 // template |