Mercurial > projects > ldc
comparison gen/arrays.cpp @ 136:0e28624814e8 trunk
[svn r140] did a lot of the work towards being able to pass multiple modules on the command line. not complete yet though
author | lindquist |
---|---|
date | Thu, 17 Jan 2008 03:15:12 +0100 |
parents | 44a95ac7368a |
children | a27941d00351 |
comparison
equal
deleted
inserted
replaced
135:176bd52b3cf5 | 136:0e28624814e8 |
---|---|
669 args.push_back(DtoBitCast(rmem,pt)); | 669 args.push_back(DtoBitCast(rmem,pt)); |
670 | 670 |
671 // pass element typeinfo ? | 671 // pass element typeinfo ? |
672 if (useti) { | 672 if (useti) { |
673 TypeInfoDeclaration* ti = DtoDType(l->getType())->next->getTypeInfoDeclaration(); | 673 TypeInfoDeclaration* ti = DtoDType(l->getType())->next->getTypeInfoDeclaration(); |
674 if (!ti->llvmValue) { | 674 DtoForceConstInitDsymbol(ti); |
675 DtoForceConstInitDsymbol(ti); | 675 Logger::cout() << "typeinfo decl: " << *ti->getIrValue() << '\n'; |
676 } | |
677 Logger::cout() << "typeinfo decl: " << *ti->llvmValue << '\n'; | |
678 | 676 |
679 pt = fn->getFunctionType()->getParamType(2); | 677 pt = fn->getFunctionType()->getParamType(2); |
680 args.push_back(DtoBitCast(ti->llvmValue, pt)); | 678 args.push_back(DtoBitCast(ti->getIrValue(), pt)); |
681 } | 679 } |
682 | 680 |
683 return gIR->ir->CreateCall(fn, args.begin(), args.end(), "tmp"); | 681 return gIR->ir->CreateCall(fn, args.begin(), args.end(), "tmp"); |
684 } | 682 } |
685 | 683 |