From 77cb1c6b8e8f6e26ff6e25c3a38ec8d8412ac0f2 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Mon, 11 May 2009 20:54:25 +0200 Subject: [PATCH] Added error instead of assertion failure when trying to get !TypeInfo for a forward declared struct. --- gen/typinf.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gen/typinf.cpp b/gen/typinf.cpp index a9a8b4b4..1cebe274 100644 --- a/gen/typinf.cpp +++ b/gen/typinf.cpp @@ -652,6 +652,14 @@ void TypeInfoStructDeclaration::llvmDefine() assert(tinfo->ty == Tstruct); TypeStruct *tc = (TypeStruct *)tinfo; StructDeclaration *sd = tc->sym; + + // can't emit typeinfo for forward declarations + if (sd->sizeok != 1) + { + sd->error("cannot emit TypeInfo for forward declaration"); + fatal(); + } + sd->codegen(Type::sir); ClassDeclaration* base = Type::typeinfostruct;