Mercurial > projects > ldc
comparison gen/classes.cpp @ 423:3424f0fab7a9
Error instead of assert on unimplemented interface functions.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Tue, 29 Jul 2008 10:55:58 +0200 |
parents | fa91b03d9cd7 |
children | 672eb4893b55 |
comparison
equal
deleted
inserted
replaced
422:fa91b03d9cd7 | 423:3424f0fab7a9 |
---|---|
654 | 654 |
655 for (int k=1; k < b->vtbl.dim; k++) | 655 for (int k=1; k < b->vtbl.dim; k++) |
656 { | 656 { |
657 Logger::println("interface vtbl const init nr. %d", k); | 657 Logger::println("interface vtbl const init nr. %d", k); |
658 Dsymbol* dsym = (Dsymbol*)b->vtbl.data[k]; | 658 Dsymbol* dsym = (Dsymbol*)b->vtbl.data[k]; |
659 assert(dsym); | 659 |
660 // error on unimplemented functions, error was already generated earlier | |
661 if(!dsym) | |
662 fatal(); | |
663 | |
660 FuncDeclaration* fd = dsym->isFuncDeclaration(); | 664 FuncDeclaration* fd = dsym->isFuncDeclaration(); |
661 assert(fd); | 665 assert(fd); |
662 DtoForceDeclareDsymbol(fd); | 666 DtoForceDeclareDsymbol(fd); |
663 assert(fd->ir.irFunc->func); | 667 assert(fd->ir.irFunc->func); |
664 LLConstant* c = llvm::cast<llvm::Constant>(fd->ir.irFunc->func); | 668 LLConstant* c = llvm::cast<llvm::Constant>(fd->ir.irFunc->func); |