Mercurial > projects > ldc
diff gen/classes.cpp @ 821:8f0b24bc55f0
Added CMake option to disable generation of ClassInfo.offTi arrays, defaults to OFF.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 02 Dec 2008 01:44:17 +0100 |
parents | 7d16ce7ad19d |
children | a70ddd449e7d |
line wrap: on
line diff
--- a/gen/classes.cpp Tue Dec 02 01:20:22 2008 +0100 +++ b/gen/classes.cpp Tue Dec 02 01:44:17 2008 +0100 @@ -1312,6 +1312,8 @@ ////////////////////////////////////////////////////////////////////////////////////////// +#if GENERATE_OFFTI + // build a single element for the OffsetInfo[] of ClassInfo static LLConstant* build_offti_entry(ClassDeclaration* cd, VarDeclaration* vd) { @@ -1371,6 +1373,8 @@ return DtoConstSlice(size, ptr); } +#endif // GENERATE_OFFTI + static LLConstant* build_class_dtor(ClassDeclaration* cd) { FuncDeclaration* dtor = cd->dtor; @@ -1581,10 +1585,20 @@ // offset typeinfo VarDeclaration* offTiVar = (VarDeclaration*)cinfo->fields.data[9]; const LLType* offTiTy = DtoType(offTiVar->type); + +#if GENERATE_OFFTI + if (cd->isInterfaceDeclaration()) c = LLConstant::getNullValue(offTiTy); else c = build_offti_array(cd, offTiTy); + +#else // GENERATE_OFFTI + + c = LLConstant::getNullValue(offTiTy); + +#endif // GENERATE_OFFTI + inits.push_back(c); // default constructor @@ -1606,8 +1620,6 @@ // FIXME: fill it out! inits.push_back( LLConstant::getNullValue(xgetTy) ); - -#else #endif /*size_t n = inits.size();