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);