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