Mercurial > projects > ldc
diff gen/toir.cpp @ 1401:e2cf1f67ca33
Don't print the entire declaration of the alliassee when `->toChars()` is
called on an `AliasDeclaration`; just printing the name will do. This fixes
#305, which otherwise tries to generate
{{{
class E {
void A() {
alias /* recurse into E->toCBuffer() */ m;
}
}
}}}
by way of an infinite recursion (causing a segfault when the stack runs out).
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Wed, 20 May 2009 16:20:59 +0200 |
parents | 6063ddfcf27d |
children | a6dfd3cb5b99 |
line wrap: on
line diff
--- a/gen/toir.cpp Tue May 19 22:35:08 2009 +0200 +++ b/gen/toir.cpp Wed May 20 16:20:59 2009 +0200 @@ -1774,7 +1774,7 @@ condty->ty == Tclass && !((TypeClass*)condty)->sym->isInterfaceDeclaration()) { - Logger::print("calling class invariant"); + Logger::println("calling class invariant"); llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_invariant"); LLValue* arg = DtoBitCast(cond->getRVal(), fn->getFunctionType()->getParamType(0)); gIR->CreateCallOrInvoke(fn, arg);