Mercurial > projects > ldc
diff gen/typinf.cpp @ 761:fa306ca8843b
Applied fvbommel's patch from #112
Added missing TypeInfoInvariant codegen for D2
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 12 Nov 2008 02:30:28 +0100 |
parents | f04dde6e882c |
children | 9a9f403ab399 |
line wrap: on
line diff
--- a/gen/typinf.cpp Wed Nov 12 00:19:18 2008 +0100 +++ b/gen/typinf.cpp Wed Nov 12 02:30:28 2008 +0100 @@ -1229,45 +1229,32 @@ assert(0); } -// void TypeInfoConstDeclaration::toDt(dt_t **pdt) -// { -// //printf("TypeInfoConstDeclaration::toDt() %s\n", toChars()); -// dtxoff(pdt, Type::typeinfoconst->toVtblSymbol(), 0, TYnptr); // vtbl for TypeInfo_Const -// dtdword(pdt, 0); // monitor -// Type *tm = tinfo->mutableOf(); -// tm = tm->merge(); -// tm->getTypeInfo(NULL); -// dtxoff(pdt, tm->vtinfo->toSymbol(), 0, TYnptr); -// } - /////////////////////////////////////////////////////////// /* ========================================================================= */ -void TypeInfoInvariantDeclaration::toDt(dt_t **pdt) -{ - assert(0 && "TypeInfoInvariantDeclaration::toDt"); -} - void TypeInfoInvariantDeclaration::llvmDeclare() { - assert(0 && "TypeInfoInvariantDeclaration::llvmDeclare"); + Logger::println("TypeInfoInvariantDeclaration::toDt() %s", toChars()); + LOG_SCOPE; + + LLVM_D_Declare_TypeInfoBase(this, Type::typeinfoinvariant); } void TypeInfoInvariantDeclaration::llvmDefine() { - assert(0 && "TypeInfoInvariantDeclaration::llvmDeclare"); + Logger::println("TypeInfoInvariantDeclaration::toDt() %s", toChars()); + LOG_SCOPE; + + Type *tm = tinfo->mutableOf(); + tm = tm->merge(); + + LLVM_D_Define_TypeInfoBase(tm, this, Type::typeinfoinvariant); } -// void TypeInfoInvariantDeclaration::toDt(dt_t **pdt) -// { -// //printf("TypeInfoInvariantDeclaration::toDt() %s\n", toChars()); -// dtxoff(pdt, Type::typeinfoinvariant->toVtblSymbol(), 0, TYnptr); // vtbl for TypeInfo_Invariant -// dtdword(pdt, 0); // monitor -// Type *tm = tinfo->mutableOf(); -// tm = tm->merge(); -// tm->getTypeInfo(NULL); -// dtxoff(pdt, tm->vtinfo->toSymbol(), 0, TYnptr); -// } +void TypeInfoInvariantDeclaration::toDt(dt_t **pdt) +{ + assert(0); +} #endif \ No newline at end of file