Mercurial > projects > ldc
comparison gen/functions.cpp @ 443:44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 01 Aug 2008 00:32:06 +0200 |
parents | 74101be2a553 |
children | cc40db549aea |
comparison
equal
deleted
inserted
replaced
442:76078c8ab5b9 | 443:44f08170f4ef |
---|---|
251 if (fdecl->llvmInternal == LLVMva_start) { | 251 if (fdecl->llvmInternal == LLVMva_start) { |
252 fn = gIR->module->getOrInsertFunction("llvm.va_start", fty); | 252 fn = gIR->module->getOrInsertFunction("llvm.va_start", fty); |
253 assert(fn); | 253 assert(fn); |
254 } | 254 } |
255 else if (fdecl->llvmInternal == LLVMva_intrinsic) { | 255 else if (fdecl->llvmInternal == LLVMva_intrinsic) { |
256 fn = gIR->module->getOrInsertFunction(fdecl->llvmInternal1, fty); | 256 fn = gIR->module->getOrInsertFunction(fdecl->intrinsicName, fty); |
257 assert(fn); | 257 assert(fn); |
258 } | 258 } |
259 else | 259 else |
260 assert(0); | 260 assert(0); |
261 | 261 |
403 if (!fdecl->ir.irFunc) { | 403 if (!fdecl->ir.irFunc) { |
404 fdecl->ir.irFunc = new IrFunction(fdecl); | 404 fdecl->ir.irFunc = new IrFunction(fdecl); |
405 } | 405 } |
406 | 406 |
407 // mangled name | 407 // mangled name |
408 char* mangled_name; | 408 const char* mangled_name; |
409 if (fdecl->llvmInternal == LLVMintrinsic) | 409 if (fdecl->llvmInternal == LLVMintrinsic) |
410 mangled_name = fdecl->llvmInternal1; | 410 mangled_name = fdecl->intrinsicName.c_str(); |
411 else | 411 else |
412 mangled_name = fdecl->mangle(); | 412 mangled_name = fdecl->mangle(); |
413 | 413 |
414 llvm::Function* vafunc = 0; | 414 llvm::Function* vafunc = 0; |
415 if ((fdecl->llvmInternal == LLVMva_start) || (fdecl->llvmInternal == LLVMva_intrinsic)) { | 415 if ((fdecl->llvmInternal == LLVMva_start) || (fdecl->llvmInternal == LLVMva_intrinsic)) { |