Mercurial > projects > ldc
comparison gen/toobj.cpp @ 1450:83bdf7bed9c5
Fix a type mismatch in ModuleInfo generation.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 01 Jun 2009 23:17:47 +0200 |
parents | 402bffb1b356 |
children | 7b218ec1044f |
comparison
equal
deleted
inserted
replaced
1449:301a916eceef | 1450:83bdf7bed9c5 |
---|---|
713 std::string m_name("_D"); | 713 std::string m_name("_D"); |
714 m_name.append(mangle()); | 714 m_name.append(mangle()); |
715 m_name.append("9__classesZ"); | 715 m_name.append("9__classesZ"); |
716 assert(gIR->module->getGlobalVariable(m_name) == NULL); | 716 assert(gIR->module->getGlobalVariable(m_name) == NULL); |
717 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name, gIR->module); | 717 llvm::GlobalVariable* m_gvar = new llvm::GlobalVariable(classArrTy, true, llvm::GlobalValue::InternalLinkage, c, m_name, gIR->module); |
718 c = DtoBitCast(m_gvar, getPtrToType(classinfoTy)); | 718 c = DtoGEPi(m_gvar, 0, 0); |
719 c = DtoConstSlice(DtoConstSize_t(classInits.size()), c); | 719 c = DtoConstSlice(DtoConstSize_t(classInits.size()), c); |
720 } | 720 } |
721 else | 721 else |
722 c = DtoConstSlice( DtoConstSize_t(0), getNullValue(getPtrToType(classinfoTy)) ); | 722 c = DtoConstSlice( DtoConstSize_t(0), getNullValue(getPtrToType(getPtrToType(classinfoTy))) ); |
723 b.push(c); | 723 b.push(c); |
724 | 724 |
725 // flags (4 means MIstandalone) | 725 // flags (4 means MIstandalone) |
726 unsigned mi_flags = needmoduleinfo ? 0 : 4; | 726 unsigned mi_flags = needmoduleinfo ? 0 : 4; |
727 b.push_uint(mi_flags); | 727 b.push_uint(mi_flags); |