@@ -30,49 +30,50 @@ struct RecordIdToIndexFunctor {
3030
3131using AbbrevDsc = void (*)(std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev);
3232
33- static void AbbrevGen (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev,
34- const std::initializer_list<llvm::BitCodeAbbrevOp> Ops) {
33+ static void
34+ generateAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev,
35+ const std::initializer_list<llvm::BitCodeAbbrevOp> Ops) {
3536 for (const auto &Op : Ops)
3637 Abbrev->Add (Op);
3738}
3839
39- static void BoolAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
40- AbbrevGen (Abbrev,
41- {// 0. Boolean
42- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
43- BitCodeConstants::BoolSize)});
40+ static void genBoolAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
41+ generateAbbrev (Abbrev,
42+ {// 0. Boolean
43+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
44+ BitCodeConstants::BoolSize)});
4445}
4546
46- static void IntAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
47- AbbrevGen (Abbrev,
48- {// 0. Fixed-size integer
49- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
50- BitCodeConstants::IntSize)});
47+ static void genIntAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
48+ generateAbbrev (Abbrev,
49+ {// 0. Fixed-size integer
50+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
51+ BitCodeConstants::IntSize)});
5152}
5253
53- static void SymbolIDAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
54- AbbrevGen (Abbrev,
55- {// 0. Fixed-size integer (length of the sha1'd USR)
56- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
57- BitCodeConstants::USRLengthSize),
58- // 1. Fixed-size array of Char6 (USR)
59- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Array),
60- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
61- BitCodeConstants::USRBitLengthSize)});
54+ static void genSymbolIdAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
55+ generateAbbrev (Abbrev,
56+ {// 0. Fixed-size integer (length of the sha1'd USR)
57+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
58+ BitCodeConstants::USRLengthSize),
59+ // 1. Fixed-size array of Char6 (USR)
60+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Array),
61+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
62+ BitCodeConstants::USRBitLengthSize)});
6263}
6364
64- static void StringAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
65- AbbrevGen (Abbrev,
66- {// 0. Fixed-size integer (length of the following string)
67- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
68- BitCodeConstants::StringLengthSize),
69- // 1. The string blob
70- llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Blob)});
65+ static void genStringAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
66+ generateAbbrev (Abbrev,
67+ {// 0. Fixed-size integer (length of the following string)
68+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
69+ BitCodeConstants::StringLengthSize),
70+ // 1. The string blob
71+ llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Blob)});
7172}
7273
7374// Assumes that the file will not have more than 65535 lines.
74- static void LocationAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
75- AbbrevGen (
75+ static void genLocationAbbrev (std::shared_ptr<llvm::BitCodeAbbrev> &Abbrev) {
76+ generateAbbrev (
7677 Abbrev,
7778 {// 0. Fixed-size integer (line number)
7879 llvm::BitCodeAbbrevOp (llvm::BitCodeAbbrevOp::Fixed,
@@ -140,67 +141,68 @@ static const llvm::IndexedMap<RecordIdDsc, RecordIdToIndexFunctor>
140141 // There is no init-list constructor for the IndexedMap, so have to
141142 // improvise
142143 static const std::vector<std::pair<RecordId, RecordIdDsc>> Inits = {
143- {VERSION, {" Version" , &IntAbbrev}},
144- {COMMENT_KIND, {" Kind" , &StringAbbrev}},
145- {COMMENT_TEXT, {" Text" , &StringAbbrev}},
146- {COMMENT_NAME, {" Name" , &StringAbbrev}},
147- {COMMENT_DIRECTION, {" Direction" , &StringAbbrev}},
148- {COMMENT_PARAMNAME, {" ParamName" , &StringAbbrev}},
149- {COMMENT_CLOSENAME, {" CloseName" , &StringAbbrev}},
150- {COMMENT_SELFCLOSING, {" SelfClosing" , &BoolAbbrev}},
151- {COMMENT_EXPLICIT, {" Explicit" , &BoolAbbrev}},
152- {COMMENT_ATTRKEY, {" AttrKey" , &StringAbbrev}},
153- {COMMENT_ATTRVAL, {" AttrVal" , &StringAbbrev}},
154- {COMMENT_ARG, {" Arg" , &StringAbbrev}},
155- {FIELD_TYPE_NAME, {" Name" , &StringAbbrev}},
156- {FIELD_DEFAULT_VALUE, {" DefaultValue" , &StringAbbrev}},
157- {MEMBER_TYPE_NAME, {" Name" , &StringAbbrev}},
158- {MEMBER_TYPE_ACCESS, {" Access" , &IntAbbrev}},
159- {MEMBER_TYPE_IS_STATIC, {" IsStatic" , &BoolAbbrev}},
160- {NAMESPACE_USR, {" USR" , &SymbolIDAbbrev}},
161- {NAMESPACE_NAME, {" Name" , &StringAbbrev}},
162- {NAMESPACE_PATH, {" Path" , &StringAbbrev}},
163- {ENUM_USR, {" USR" , &SymbolIDAbbrev}},
164- {ENUM_NAME, {" Name" , &StringAbbrev}},
165- {ENUM_DEFLOCATION, {" DefLocation" , &LocationAbbrev}},
166- {ENUM_LOCATION, {" Location" , &LocationAbbrev}},
167- {ENUM_SCOPED, {" Scoped" , &BoolAbbrev}},
168- {ENUM_VALUE_NAME, {" Name" , &StringAbbrev}},
169- {ENUM_VALUE_VALUE, {" Value" , &StringAbbrev}},
170- {ENUM_VALUE_EXPR, {" Expr" , &StringAbbrev}},
171- {RECORD_USR, {" USR" , &SymbolIDAbbrev}},
172- {RECORD_NAME, {" Name" , &StringAbbrev}},
173- {RECORD_PATH, {" Path" , &StringAbbrev}},
174- {RECORD_DEFLOCATION, {" DefLocation" , &LocationAbbrev}},
175- {RECORD_LOCATION, {" Location" , &LocationAbbrev}},
176- {RECORD_TAG_TYPE, {" TagType" , &IntAbbrev}},
177- {RECORD_IS_TYPE_DEF, {" IsTypeDef" , &BoolAbbrev}},
178- {BASE_RECORD_USR, {" USR" , &SymbolIDAbbrev}},
179- {BASE_RECORD_NAME, {" Name" , &StringAbbrev}},
180- {BASE_RECORD_PATH, {" Path" , &StringAbbrev}},
181- {BASE_RECORD_TAG_TYPE, {" TagType" , &IntAbbrev}},
182- {BASE_RECORD_IS_VIRTUAL, {" IsVirtual" , &BoolAbbrev}},
183- {BASE_RECORD_ACCESS, {" Access" , &IntAbbrev}},
184- {BASE_RECORD_IS_PARENT, {" IsParent" , &BoolAbbrev}},
185- {FUNCTION_USR, {" USR" , &SymbolIDAbbrev}},
186- {FUNCTION_NAME, {" Name" , &StringAbbrev}},
187- {FUNCTION_DEFLOCATION, {" DefLocation" , &LocationAbbrev}},
188- {FUNCTION_LOCATION, {" Location" , &LocationAbbrev}},
189- {FUNCTION_ACCESS, {" Access" , &IntAbbrev}},
190- {FUNCTION_IS_METHOD, {" IsMethod" , &BoolAbbrev}},
191- {FUNCTION_IS_STATIC, {" IsStatic" , &BoolAbbrev}},
192- {REFERENCE_USR, {" USR" , &SymbolIDAbbrev}},
193- {REFERENCE_NAME, {" Name" , &StringAbbrev}},
194- {REFERENCE_QUAL_NAME, {" QualName" , &StringAbbrev}},
195- {REFERENCE_TYPE, {" RefType" , &IntAbbrev}},
196- {REFERENCE_PATH, {" Path" , &StringAbbrev}},
197- {REFERENCE_FIELD, {" Field" , &IntAbbrev}},
198- {TEMPLATE_PARAM_CONTENTS, {" Contents" , &StringAbbrev}},
199- {TEMPLATE_SPECIALIZATION_OF, {" SpecializationOf" , &SymbolIDAbbrev}},
200- {TYPEDEF_USR, {" USR" , &SymbolIDAbbrev}},
201- {TYPEDEF_NAME, {" Name" , &StringAbbrev}},
202- {TYPEDEF_DEFLOCATION, {" DefLocation" , &LocationAbbrev}},
203- {TYPEDEF_IS_USING, {" IsUsing" , &BoolAbbrev}}};
144+ {VERSION, {" Version" , &genIntAbbrev}},
145+ {COMMENT_KIND, {" Kind" , &genStringAbbrev}},
146+ {COMMENT_TEXT, {" Text" , &genStringAbbrev}},
147+ {COMMENT_NAME, {" Name" , &genStringAbbrev}},
148+ {COMMENT_DIRECTION, {" Direction" , &genStringAbbrev}},
149+ {COMMENT_PARAMNAME, {" ParamName" , &genStringAbbrev}},
150+ {COMMENT_CLOSENAME, {" CloseName" , &genStringAbbrev}},
151+ {COMMENT_SELFCLOSING, {" SelfClosing" , &genBoolAbbrev}},
152+ {COMMENT_EXPLICIT, {" Explicit" , &genBoolAbbrev}},
153+ {COMMENT_ATTRKEY, {" AttrKey" , &genStringAbbrev}},
154+ {COMMENT_ATTRVAL, {" AttrVal" , &genStringAbbrev}},
155+ {COMMENT_ARG, {" Arg" , &genStringAbbrev}},
156+ {FIELD_TYPE_NAME, {" Name" , &genStringAbbrev}},
157+ {FIELD_DEFAULT_VALUE, {" DefaultValue" , &genStringAbbrev}},
158+ {MEMBER_TYPE_NAME, {" Name" , &genStringAbbrev}},
159+ {MEMBER_TYPE_ACCESS, {" Access" , &genIntAbbrev}},
160+ {MEMBER_TYPE_IS_STATIC, {" IsStatic" , &genBoolAbbrev}},
161+ {NAMESPACE_USR, {" USR" , &genSymbolIdAbbrev}},
162+ {NAMESPACE_NAME, {" Name" , &genStringAbbrev}},
163+ {NAMESPACE_PATH, {" Path" , &genStringAbbrev}},
164+ {ENUM_USR, {" USR" , &genSymbolIdAbbrev}},
165+ {ENUM_NAME, {" Name" , &genStringAbbrev}},
166+ {ENUM_DEFLOCATION, {" DefLocation" , &genLocationAbbrev}},
167+ {ENUM_LOCATION, {" Location" , &genLocationAbbrev}},
168+ {ENUM_SCOPED, {" Scoped" , &genBoolAbbrev}},
169+ {ENUM_VALUE_NAME, {" Name" , &genStringAbbrev}},
170+ {ENUM_VALUE_VALUE, {" Value" , &genStringAbbrev}},
171+ {ENUM_VALUE_EXPR, {" Expr" , &genStringAbbrev}},
172+ {RECORD_USR, {" USR" , &genSymbolIdAbbrev}},
173+ {RECORD_NAME, {" Name" , &genStringAbbrev}},
174+ {RECORD_PATH, {" Path" , &genStringAbbrev}},
175+ {RECORD_DEFLOCATION, {" DefLocation" , &genLocationAbbrev}},
176+ {RECORD_LOCATION, {" Location" , &genLocationAbbrev}},
177+ {RECORD_TAG_TYPE, {" TagType" , &genIntAbbrev}},
178+ {RECORD_IS_TYPE_DEF, {" IsTypeDef" , &genBoolAbbrev}},
179+ {BASE_RECORD_USR, {" USR" , &genSymbolIdAbbrev}},
180+ {BASE_RECORD_NAME, {" Name" , &genStringAbbrev}},
181+ {BASE_RECORD_PATH, {" Path" , &genStringAbbrev}},
182+ {BASE_RECORD_TAG_TYPE, {" TagType" , &genIntAbbrev}},
183+ {BASE_RECORD_IS_VIRTUAL, {" IsVirtual" , &genBoolAbbrev}},
184+ {BASE_RECORD_ACCESS, {" Access" , &genIntAbbrev}},
185+ {BASE_RECORD_IS_PARENT, {" IsParent" , &genBoolAbbrev}},
186+ {FUNCTION_USR, {" USR" , &genSymbolIdAbbrev}},
187+ {FUNCTION_NAME, {" Name" , &genStringAbbrev}},
188+ {FUNCTION_DEFLOCATION, {" DefLocation" , &genLocationAbbrev}},
189+ {FUNCTION_LOCATION, {" Location" , &genLocationAbbrev}},
190+ {FUNCTION_ACCESS, {" Access" , &genIntAbbrev}},
191+ {FUNCTION_IS_METHOD, {" IsMethod" , &genBoolAbbrev}},
192+ {FUNCTION_IS_STATIC, {" IsStatic" , &genBoolAbbrev}},
193+ {REFERENCE_USR, {" USR" , &genSymbolIdAbbrev}},
194+ {REFERENCE_NAME, {" Name" , &genStringAbbrev}},
195+ {REFERENCE_QUAL_NAME, {" QualName" , &genStringAbbrev}},
196+ {REFERENCE_TYPE, {" RefType" , &genIntAbbrev}},
197+ {REFERENCE_PATH, {" Path" , &genStringAbbrev}},
198+ {REFERENCE_FIELD, {" Field" , &genIntAbbrev}},
199+ {TEMPLATE_PARAM_CONTENTS, {" Contents" , &genStringAbbrev}},
200+ {TEMPLATE_SPECIALIZATION_OF,
201+ {" SpecializationOf" , &genSymbolIdAbbrev}},
202+ {TYPEDEF_USR, {" USR" , &genSymbolIdAbbrev}},
203+ {TYPEDEF_NAME, {" Name" , &genStringAbbrev}},
204+ {TYPEDEF_DEFLOCATION, {" DefLocation" , &genLocationAbbrev}},
205+ {TYPEDEF_IS_USING, {" IsUsing" , &genBoolAbbrev}}};
204206 assert (Inits.size () == RecordIdCount);
205207 for (const auto &Init : Inits) {
206208 RecordIdNameMap[Init.first ] = Init.second ;
@@ -327,7 +329,7 @@ void ClangDocBitcodeWriter::emitAbbrev(RecordId ID, BlockId Block) {
327329
328330void ClangDocBitcodeWriter::emitRecord (const SymbolID &Sym, RecordId ID) {
329331 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
330- assert (RecordIdNameMap[ID].Abbrev == &SymbolIDAbbrev &&
332+ assert (RecordIdNameMap[ID].Abbrev == &genSymbolIdAbbrev &&
331333 " Abbrev type mismatch." );
332334 if (!prepRecordData (ID, Sym != EmptySID))
333335 return ;
@@ -339,7 +341,7 @@ void ClangDocBitcodeWriter::emitRecord(const SymbolID &Sym, RecordId ID) {
339341
340342void ClangDocBitcodeWriter::emitRecord (llvm::StringRef Str, RecordId ID) {
341343 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
342- assert (RecordIdNameMap[ID].Abbrev == &StringAbbrev &&
344+ assert (RecordIdNameMap[ID].Abbrev == &genStringAbbrev &&
343345 " Abbrev type mismatch." );
344346 if (!prepRecordData (ID, !Str.empty ()))
345347 return ;
@@ -350,7 +352,7 @@ void ClangDocBitcodeWriter::emitRecord(llvm::StringRef Str, RecordId ID) {
350352
351353void ClangDocBitcodeWriter::emitRecord (const Location &Loc, RecordId ID) {
352354 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
353- assert (RecordIdNameMap[ID].Abbrev == &LocationAbbrev &&
355+ assert (RecordIdNameMap[ID].Abbrev == &genLocationAbbrev &&
354356 " Abbrev type mismatch." );
355357 if (!prepRecordData (ID, true ))
356358 return ;
@@ -364,7 +366,8 @@ void ClangDocBitcodeWriter::emitRecord(const Location &Loc, RecordId ID) {
364366
365367void ClangDocBitcodeWriter::emitRecord (bool Val, RecordId ID) {
366368 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
367- assert (RecordIdNameMap[ID].Abbrev == &BoolAbbrev && " Abbrev type mismatch." );
369+ assert (RecordIdNameMap[ID].Abbrev == &genBoolAbbrev &&
370+ " Abbrev type mismatch." );
368371 if (!prepRecordData (ID, Val))
369372 return ;
370373 Record.push_back (Val);
@@ -373,7 +376,8 @@ void ClangDocBitcodeWriter::emitRecord(bool Val, RecordId ID) {
373376
374377void ClangDocBitcodeWriter::emitRecord (int Val, RecordId ID) {
375378 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
376- assert (RecordIdNameMap[ID].Abbrev == &IntAbbrev && " Abbrev type mismatch." );
379+ assert (RecordIdNameMap[ID].Abbrev == &genIntAbbrev &&
380+ " Abbrev type mismatch." );
377381 if (!prepRecordData (ID, Val))
378382 return ;
379383 // FIXME: Assert that the integer is of the appropriate size.
@@ -383,7 +387,8 @@ void ClangDocBitcodeWriter::emitRecord(int Val, RecordId ID) {
383387
384388void ClangDocBitcodeWriter::emitRecord (unsigned Val, RecordId ID) {
385389 assert (RecordIdNameMap[ID] && " Unknown RecordId." );
386- assert (RecordIdNameMap[ID].Abbrev == &IntAbbrev && " Abbrev type mismatch." );
390+ assert (RecordIdNameMap[ID].Abbrev == &genIntAbbrev &&
391+ " Abbrev type mismatch." );
387392 if (!prepRecordData (ID, Val))
388393 return ;
389394 assert (Val < (1U << BitCodeConstants::IntSize));
0 commit comments