Mercurial > projects > ldc
comparison gen/arrays.cpp @ 1463:a5526b7a5ae6
D2:
Applied function type from D1 frontend that got removed in D2, it's critical for member function type to be correct.
Fixed a bunch of type discrepancies in druntime object.di vs. genobj.d .
Disabled (#if 0) some potentally very large type dumps for -vv .
Updated classinfo and typeinfo generation for D2, almost complete now.
Added finer grained checks for vtbl type mismatching, aids debugging.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail com> |
---|---|
date | Wed, 03 Jun 2009 02:28:48 +0200 |
parents | a3af393d1936 |
children | b3ba2c6ff038 |
comparison
equal
deleted
inserted
replaced
1462:f0423003caa6 | 1463:a5526b7a5ae6 |
---|---|
699 Type* t = l->getType(); | 699 Type* t = l->getType(); |
700 LLValue* tival = DtoTypeInfoOf(t); | 700 LLValue* tival = DtoTypeInfoOf(t); |
701 // DtoTypeInfoOf only does declare, not enough in this case :/ | 701 // DtoTypeInfoOf only does declare, not enough in this case :/ |
702 t->vtinfo->codegen(Type::sir); | 702 t->vtinfo->codegen(Type::sir); |
703 | 703 |
704 #if 0 | |
704 if (Logger::enabled()) | 705 if (Logger::enabled()) |
705 Logger::cout() << "typeinfo decl: " << *tival << '\n'; | 706 Logger::cout() << "typeinfo decl: " << *tival << '\n'; |
707 #endif | |
706 | 708 |
707 args.push_back(DtoBitCast(tival, fn->getFunctionType()->getParamType(2))); | 709 args.push_back(DtoBitCast(tival, fn->getFunctionType()->getParamType(2))); |
708 } | 710 } |
709 | 711 |
710 LLCallSite call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end(), "tmp"); | 712 LLCallSite call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end(), "tmp"); |