@@ -161,9 +161,15 @@ static const llvm::IndexedMap<RecordIdDsc, RecordIdToIndexFunctor>
161161 {COMMENT_ARG, {" Arg" , &genStringAbbrev}},
162162 {FIELD_TYPE_NAME, {" Name" , &genStringAbbrev}},
163163 {FIELD_DEFAULT_VALUE, {" DefaultValue" , &genStringAbbrev}},
164+ {FIELD_TYPE_IS_BUILTIN, {" IsBuiltin" , &genBoolAbbrev}},
165+ {FIELD_TYPE_IS_TEMPLATE, {" IsTemplate" , &genBoolAbbrev}},
164166 {MEMBER_TYPE_NAME, {" Name" , &genStringAbbrev}},
165167 {MEMBER_TYPE_ACCESS, {" Access" , &genIntAbbrev}},
166168 {MEMBER_TYPE_IS_STATIC, {" IsStatic" , &genBoolAbbrev}},
169+ {MEMBER_TYPE_IS_BUILTIN, {" IsBuiltin" , &genBoolAbbrev}},
170+ {MEMBER_TYPE_IS_TEMPLATE, {" IsTemplate" , &genBoolAbbrev}},
171+ {TYPE_IS_BUILTIN, {" IsBuiltin" , &genBoolAbbrev}},
172+ {TYPE_IS_TEMPLATE, {" IsTemplate" , &genBoolAbbrev}},
167173 {NAMESPACE_USR, {" USR" , &genSymbolIdAbbrev}},
168174 {NAMESPACE_NAME, {" Name" , &genStringAbbrev}},
169175 {NAMESPACE_PATH, {" Path" , &genStringAbbrev}},
@@ -239,12 +245,15 @@ static const std::vector<std::pair<BlockId, std::vector<RecordId>>>
239245 COMMENT_PARAMNAME, COMMENT_CLOSENAME, COMMENT_SELFCLOSING,
240246 COMMENT_EXPLICIT, COMMENT_ATTRKEY, COMMENT_ATTRVAL, COMMENT_ARG}},
241247 // Type Block
242- {BI_TYPE_BLOCK_ID, {}},
248+ {BI_TYPE_BLOCK_ID, {TYPE_IS_BUILTIN, TYPE_IS_TEMPLATE }},
243249 // FieldType Block
244- {BI_FIELD_TYPE_BLOCK_ID, {FIELD_TYPE_NAME, FIELD_DEFAULT_VALUE}},
250+ {BI_FIELD_TYPE_BLOCK_ID,
251+ {FIELD_TYPE_NAME, FIELD_DEFAULT_VALUE, FIELD_TYPE_IS_BUILTIN,
252+ FIELD_TYPE_IS_TEMPLATE}},
245253 // MemberType Block
246254 {BI_MEMBER_TYPE_BLOCK_ID,
247- {MEMBER_TYPE_NAME, MEMBER_TYPE_ACCESS, MEMBER_TYPE_IS_STATIC}},
255+ {MEMBER_TYPE_NAME, MEMBER_TYPE_ACCESS, MEMBER_TYPE_IS_STATIC,
256+ MEMBER_TYPE_IS_BUILTIN, MEMBER_TYPE_IS_TEMPLATE}},
248257 // Enum Block
249258 {BI_ENUM_BLOCK_ID,
250259 {ENUM_USR, ENUM_NAME, ENUM_DEFLOCATION, ENUM_LOCATION, ENUM_SCOPED}},
@@ -470,6 +479,8 @@ void ClangDocBitcodeWriter::emitBlock(const Reference &R, FieldId Field) {
470479void ClangDocBitcodeWriter::emitBlock (const TypeInfo &T) {
471480 StreamSubBlockGuard Block (Stream, BI_TYPE_BLOCK_ID);
472481 emitBlock (T.Type , FieldId::F_type);
482+ emitRecord (T.IsBuiltIn , TYPE_IS_BUILTIN);
483+ emitRecord (T.IsTemplate , TYPE_IS_TEMPLATE);
473484}
474485
475486void ClangDocBitcodeWriter::emitBlock (const TypedefInfo &T) {
@@ -491,6 +502,8 @@ void ClangDocBitcodeWriter::emitBlock(const FieldTypeInfo &T) {
491502 emitBlock (T.Type , FieldId::F_type);
492503 emitRecord (T.Name , FIELD_TYPE_NAME);
493504 emitRecord (T.DefaultValue , FIELD_DEFAULT_VALUE);
505+ emitRecord (T.IsBuiltIn , FIELD_TYPE_IS_BUILTIN);
506+ emitRecord (T.IsTemplate , FIELD_TYPE_IS_TEMPLATE);
494507}
495508
496509void ClangDocBitcodeWriter::emitBlock (const MemberTypeInfo &T) {
@@ -499,6 +512,9 @@ void ClangDocBitcodeWriter::emitBlock(const MemberTypeInfo &T) {
499512 emitRecord (T.Name , MEMBER_TYPE_NAME);
500513 emitRecord (T.Access , MEMBER_TYPE_ACCESS);
501514 emitRecord (T.IsStatic , MEMBER_TYPE_IS_STATIC);
515+ emitRecord (T.IsBuiltIn , MEMBER_TYPE_IS_BUILTIN);
516+ emitRecord (T.IsTemplate , MEMBER_TYPE_IS_TEMPLATE);
517+ emitRecord (T.IsTemplate , MEMBER_TYPE_IS_TEMPLATE);
502518 for (const auto &CI : T.Description )
503519 emitBlock (CI);
504520}
0 commit comments