Mercurial > projects > ldc
comparison gen/toobj.cpp @ 1554:d6e8d5db259f
LLVMContext changes up to r77366
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Thu, 30 Jul 2009 15:25:10 +0200 |
parents | 259b031f3d22 |
children | 1d5c3354b3c2 |
comparison
equal
deleted
inserted
replaced
1553:f55ca8a1598c | 1554:d6e8d5db259f |
---|---|
672 } | 672 } |
673 // has import array? | 673 // has import array? |
674 if (!importInits.empty()) | 674 if (!importInits.empty()) |
675 { | 675 { |
676 const llvm::ArrayType* importArrTy = llvm::ArrayType::get(getPtrToType(moduleinfoTy), importInits.size()); | 676 const llvm::ArrayType* importArrTy = llvm::ArrayType::get(getPtrToType(moduleinfoTy), importInits.size()); |
677 c = llvm::ConstantArray::get(importArrTy, importInits); | 677 c = LLConstantArray::get(importArrTy, importInits); |
678 std::string m_name("_D"); | 678 std::string m_name("_D"); |
679 m_name.append(mangle()); | 679 m_name.append(mangle()); |
680 m_name.append("9__importsZ"); | 680 m_name.append("9__importsZ"); |
681 llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name); | 681 llvm::GlobalVariable* m_gvar = gIR->module->getGlobalVariable(m_name); |
682 if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); | 682 if (!m_gvar) m_gvar = new llvm::GlobalVariable(*gIR->module, importArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); |
723 } | 723 } |
724 // has class array? | 724 // has class array? |
725 if (!classInits.empty()) | 725 if (!classInits.empty()) |
726 { | 726 { |
727 const llvm::ArrayType* classArrTy = llvm::ArrayType::get(getPtrToType(classinfoTy), classInits.size()); | 727 const llvm::ArrayType* classArrTy = llvm::ArrayType::get(getPtrToType(classinfoTy), classInits.size()); |
728 c = llvm::ConstantArray::get(classArrTy, classInits); | 728 c = LLConstantArray::get(classArrTy, classInits); |
729 std::string m_name("_D"); | 729 std::string m_name("_D"); |
730 m_name.append(mangle()); | 730 m_name.append(mangle()); |
731 m_name.append("9__classesZ"); | 731 m_name.append("9__classesZ"); |
732 assert(gIR->module->getGlobalVariable(m_name) == NULL); | 732 assert(gIR->module->getGlobalVariable(m_name) == NULL); |
733 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(*gIR->module, classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); | 733 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(*gIR->module, classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name); |
817 LLConstant* magicinit = LLConstantStruct::get(magicsty, magicconstants); | 817 LLConstant* magicinit = LLConstantStruct::get(magicsty, magicconstants); |
818 | 818 |
819 // declare the appending array | 819 // declare the appending array |
820 const llvm::ArrayType* appendArrTy = llvm::ArrayType::get(magicsty, 1); | 820 const llvm::ArrayType* appendArrTy = llvm::ArrayType::get(magicsty, 1); |
821 std::vector<LLConstant*> appendInits(1, magicinit); | 821 std::vector<LLConstant*> appendInits(1, magicinit); |
822 LLConstant* appendInit = llvm::ConstantArray::get(appendArrTy, appendInits); | 822 LLConstant* appendInit = LLConstantArray::get(appendArrTy, appendInits); |
823 std::string appendName("llvm.global_ctors"); | 823 std::string appendName("llvm.global_ctors"); |
824 llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(*gIR->module, appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName); | 824 llvm::GlobalVariable* appendVar = new llvm::GlobalVariable(*gIR->module, appendArrTy, true, llvm::GlobalValue::AppendingLinkage, appendInit, appendName); |
825 } | 825 } |