Lines Matching refs:IO

76 void ScalarEnumerationTraits<SymbolKind>::enumeration(IO &io,
83 void ScalarBitSetTraits<CompileSym2Flags>::bitset(IO &io,
92 void ScalarBitSetTraits<CompileSym3Flags>::bitset(IO &io,
101 void ScalarBitSetTraits<ExportFlags>::bitset(IO &io, ExportFlags &Flags) {
109 void ScalarBitSetTraits<PublicSymFlags>::bitset(IO &io, PublicSymFlags &Flags) {
117 void ScalarBitSetTraits<LocalSymFlags>::bitset(IO &io, LocalSymFlags &Flags) {
125 void ScalarBitSetTraits<ProcSymFlags>::bitset(IO &io, ProcSymFlags &Flags) {
134 IO &io, FrameProcedureOptions &Flags) {
142 void ScalarEnumerationTraits<CPUType>::enumeration(IO &io, CPUType &Cpu) {
149 void ScalarEnumerationTraits<RegisterId>::enumeration(IO &io, RegisterId &Reg) {
151 assert(Header && "The IO context is not initialized");
181 IO &io, TrampolineType &Tramp) {
189 void ScalarEnumerationTraits<ThunkOrdinal>::enumeration(IO &io,
198 IO &io, FrameCookieKind &FC) {
209 static void mapping(IO &io, LocalVariableAddrRange &Range) {
216 static void mapping(IO &io, LocalVariableAddrGap &Gap) {
234 virtual void map(yaml::IO &io) = 0;
245 void map(yaml::IO &io) override;
263 void map(yaml::IO &io) override;
286 template <> void SymbolRecordImpl<ScopeEndSym>::map(IO &IO) {}
288 void UnknownSymbolRecord::map(yaml::IO &io) {
302 template <> void SymbolRecordImpl<Thunk32Sym>::map(IO &IO) {
303 IO.mapRequired("Parent", Symbol.Parent);
304 IO.mapRequired("End", Symbol.End);
305 IO.mapRequired("Next", Symbol.Next);
306 IO.mapRequired("Off", Symbol.Offset);
307 IO.mapRequired("Seg", Symbol.Segment);
308 IO.mapRequired("Len", Symbol.Length);
309 IO.mapRequired("Ordinal", Symbol.Thunk);
312 template <> void SymbolRecordImpl<TrampolineSym>::map(IO &IO) {
313 IO.mapRequired("Type", Symbol.Type);
314 IO.mapRequired("Size", Symbol.Size);
315 IO.mapRequired("ThunkOff", Symbol.ThunkOffset);
316 IO.mapRequired("TargetOff", Symbol.TargetOffset);
317 IO.mapRequired("ThunkSection", Symbol.ThunkSection);
318 IO.mapRequired("TargetSection", Symbol.TargetSection);
321 template <> void SymbolRecordImpl<SectionSym>::map(IO &IO) {
322 IO.mapRequired("SectionNumber", Symbol.SectionNumber);
323 IO.mapRequired("Alignment", Symbol.Alignment);
324 IO.mapRequired("Rva", Symbol.Rva);
325 IO.mapRequired("Length", Symbol.Length);
326 IO.mapRequired("Characteristics", Symbol.Characteristics);
327 IO.mapRequired("Name", Symbol.Name);
330 template <> void SymbolRecordImpl<CoffGroupSym>::map(IO &IO) {
331 IO.mapRequired("Size", Symbol.Size);
332 IO.mapRequired("Characteristics", Symbol.Characteristics);
333 IO.mapRequired("Offset", Symbol.Offset);
334 IO.mapRequired("Segment", Symbol.Segment);
335 IO.mapRequired("Name", Symbol.Name);
338 template <> void SymbolRecordImpl<ExportSym>::map(IO &IO) {
339 IO.mapRequired("Ordinal", Symbol.Ordinal);
340 IO.mapRequired("Flags", Symbol.Flags);
341 IO.mapRequired("Name", Symbol.Name);
344 template <> void SymbolRecordImpl<ProcSym>::map(IO &IO) {
345 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
346 IO.mapOptional("PtrEnd", Symbol.End, 0U);
347 IO.mapOptional("PtrNext", Symbol.Next, 0U);
348 IO.mapRequired("CodeSize", Symbol.CodeSize);
349 IO.mapRequired("DbgStart", Symbol.DbgStart);
350 IO.mapRequired("DbgEnd", Symbol.DbgEnd);
351 IO.mapRequired("FunctionType", Symbol.FunctionType);
352 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
353 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
354 IO.mapRequired("Flags", Symbol.Flags);
355 IO.mapRequired("DisplayName", Symbol.Name);
358 template <> void SymbolRecordImpl<RegisterSym>::map(IO &IO) {
359 IO.mapRequired("Type", Symbol.Index);
360 IO.mapRequired("Seg", Symbol.Register);
361 IO.mapRequired("Name", Symbol.Name);
364 template <> void SymbolRecordImpl<PublicSym32>::map(IO &IO) {
365 IO.mapRequired("Flags", Symbol.Flags);
366 IO.mapOptional("Offset", Symbol.Offset, 0U);
367 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
368 IO.mapRequired("Name", Symbol.Name);
371 template <> void SymbolRecordImpl<ProcRefSym>::map(IO &IO) {
372 IO.mapRequired("SumName", Symbol.SumName);
373 IO.mapRequired("SymOffset", Symbol.SymOffset);
374 IO.mapRequired("Mod", Symbol.Module);
375 IO.mapRequired("Name", Symbol.Name);
378 template <> void SymbolRecordImpl<EnvBlockSym>::map(IO &IO) {
379 IO.mapRequired("Entries", Symbol.Fields);
382 template <> void SymbolRecordImpl<InlineSiteSym>::map(IO &IO) {
383 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
384 IO.mapOptional("PtrEnd", Symbol.End, 0U);
385 IO.mapRequired("Inlinee", Symbol.Inlinee);
389 template <> void SymbolRecordImpl<LocalSym>::map(IO &IO) {
390 IO.mapRequired("Type", Symbol.Type);
391 IO.mapRequired("Flags", Symbol.Flags);
393 IO.mapRequired("VarName", Symbol.Name);
396 template <> void SymbolRecordImpl<DefRangeSym>::map(IO &IO) {
397 IO.mapRequired("Program", Symbol.Program);
398 IO.mapRequired("Range", Symbol.Range);
399 IO.mapRequired("Gaps", Symbol.Gaps);
402 template <> void SymbolRecordImpl<DefRangeSubfieldSym>::map(IO &IO) {
403 IO.mapRequired("Program", Symbol.Program);
404 IO.mapRequired("OffsetInParent", Symbol.OffsetInParent);
405 IO.mapRequired("Range", Symbol.Range);
406 IO.mapRequired("Gaps", Symbol.Gaps);
409 template <> void SymbolRecordImpl<DefRangeRegisterSym>::map(IO &IO) {
410 IO.mapRequired("Register", Symbol.Hdr.Register);
411 IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
412 IO.mapRequired("Range", Symbol.Range);
413 IO.mapRequired("Gaps", Symbol.Gaps);
416 template <> void SymbolRecordImpl<DefRangeFramePointerRelSym>::map(IO &IO) {
417 IO.mapRequired("Offset", Symbol.Hdr.Offset);
418 IO.mapRequired("Range", Symbol.Range);
419 IO.mapRequired("Gaps", Symbol.Gaps);
422 template <> void SymbolRecordImpl<DefRangeSubfieldRegisterSym>::map(IO &IO) {
423 IO.mapRequired("Register", Symbol.Hdr.Register);
424 IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
425 IO.mapRequired("OffsetInParent", Symbol.Hdr.OffsetInParent);
426 IO.mapRequired("Range", Symbol.Range);
427 IO.mapRequired("Gaps", Symbol.Gaps);
431 void SymbolRecordImpl<DefRangeFramePointerRelFullScopeSym>::map(IO &IO) {
432 IO.mapRequired("Register", Symbol.Offset);
435 template <> void SymbolRecordImpl<DefRangeRegisterRelSym>::map(IO &IO) {
436 IO.mapRequired("Register", Symbol.Hdr.Register);
437 IO.mapRequired("Flags", Symbol.Hdr.Flags);
438 IO.mapRequired("BasePointerOffset", Symbol.Hdr.BasePointerOffset);
439 IO.mapRequired("Range", Symbol.Range);
440 IO.mapRequired("Gaps", Symbol.Gaps);
443 template <> void SymbolRecordImpl<BlockSym>::map(IO &IO) {
444 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
445 IO.mapOptional("PtrEnd", Symbol.End, 0U);
446 IO.mapRequired("CodeSize", Symbol.CodeSize);
447 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
448 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
449 IO.mapRequired("BlockName", Symbol.Name);
452 template <> void SymbolRecordImpl<LabelSym>::map(IO &IO) {
453 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
454 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
455 IO.mapRequired("Flags", Symbol.Flags);
456 IO.mapRequired("Flags", Symbol.Flags);
457 IO.mapRequired("DisplayName", Symbol.Name);
460 template <> void SymbolRecordImpl<ObjNameSym>::map(IO &IO) {
461 IO.mapRequired("Signature", Symbol.Signature);
462 IO.mapRequired("ObjectName", Symbol.Name);
465 template <> void SymbolRecordImpl<Compile2Sym>::map(IO &IO) {
466 IO.mapRequired("Flags", Symbol.Flags);
467 IO.mapRequired("Machine", Symbol.Machine);
468 IO.mapRequired("FrontendMajor", Symbol.VersionFrontendMajor);
469 IO.mapRequired("FrontendMinor", Symbol.VersionFrontendMinor);
470 IO.mapRequired("FrontendBuild", Symbol.VersionFrontendBuild);
471 IO.mapRequired("BackendMajor", Symbol.VersionBackendMajor);
472 IO.mapRequired("BackendMinor", Symbol.VersionBackendMinor);
473 IO.mapRequired("BackendBuild", Symbol.VersionBackendBuild);
474 IO.mapRequired("Version", Symbol.Version);
477 template <> void SymbolRecordImpl<Compile3Sym>::map(IO &IO) {
478 IO.mapRequired("Flags", Symbol.Flags);
479 IO.mapRequired("Machine", Symbol.Machine);
480 IO.mapRequired("FrontendMajor", Symbol.VersionFrontendMajor);
481 IO.mapRequired("FrontendMinor", Symbol.VersionFrontendMinor);
482 IO.mapRequired("FrontendBuild", Symbol.VersionFrontendBuild);
483 IO.mapRequired("FrontendQFE", Symbol.VersionFrontendQFE);
484 IO.mapRequired("BackendMajor", Symbol.VersionBackendMajor);
485 IO.mapRequired("BackendMinor", Symbol.VersionBackendMinor);
486 IO.mapRequired("BackendBuild", Symbol.VersionBackendBuild);
487 IO.mapRequired("BackendQFE", Symbol.VersionBackendQFE);
488 IO.mapRequired("Version", Symbol.Version);
491 template <> void SymbolRecordImpl<FrameProcSym>::map(IO &IO) {
492 IO.mapRequired("TotalFrameBytes", Symbol.TotalFrameBytes);
493 IO.mapRequired("PaddingFrameBytes", Symbol.PaddingFrameBytes);
494 IO.mapRequired("OffsetToPadding", Symbol.OffsetToPadding);
495 IO.mapRequired("BytesOfCalleeSavedRegisters",
497 IO.mapRequired("OffsetOfExceptionHandler", Symbol.OffsetOfExceptionHandler);
498 IO.mapRequired("SectionIdOfExceptionHandler",
500 IO.mapRequired("Flags", Symbol.Flags);
503 template <> void SymbolRecordImpl<CallSiteInfoSym>::map(IO &IO) {
504 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
505 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
506 IO.mapRequired("Type", Symbol.Type);
509 template <> void SymbolRecordImpl<FileStaticSym>::map(IO &IO) {
510 IO.mapRequired("Index", Symbol.Index);
511 IO.mapRequired("ModFilenameOffset", Symbol.ModFilenameOffset);
512 IO.mapRequired("Flags", Symbol.Flags);
513 IO.mapRequired("Name", Symbol.Name);
516 template <> void SymbolRecordImpl<HeapAllocationSiteSym>::map(IO &IO) {
517 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
518 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
519 IO.mapRequired("CallInstructionSize", Symbol.CallInstructionSize);
520 IO.mapRequired("Type", Symbol.Type);
523 template <> void SymbolRecordImpl<FrameCookieSym>::map(IO &IO) {
524 IO.mapRequired("Register", Symbol.Register);
525 IO.mapRequired("CookieKind", Symbol.CookieKind);
526 IO.mapRequired("Flags", Symbol.Flags);
529 template <> void SymbolRecordImpl<CallerSym>::map(IO &IO) {
530 IO.mapRequired("FuncID", Symbol.Indices);
533 template <> void SymbolRecordImpl<UDTSym>::map(IO &IO) {
534 IO.mapRequired("Type", Symbol.Type);
535 IO.mapRequired("UDTName", Symbol.Name);
538 template <> void SymbolRecordImpl<BuildInfoSym>::map(IO &IO) {
539 IO.mapRequired("BuildId", Symbol.BuildId);
542 template <> void SymbolRecordImpl<BPRelativeSym>::map(IO &IO) {
543 IO.mapRequired("Offset", Symbol.Offset);
544 IO.mapRequired("Type", Symbol.Type);
545 IO.mapRequired("VarName", Symbol.Name);
548 template <> void SymbolRecordImpl<RegRelativeSym>::map(IO &IO) {
549 IO.mapRequired("Offset", Symbol.Offset);
550 IO.mapRequired("Type", Symbol.Type);
551 IO.mapRequired("Register", Symbol.Register);
552 IO.mapRequired("VarName", Symbol.Name);
555 template <> void SymbolRecordImpl<ConstantSym>::map(IO &IO) {
556 IO.mapRequired("Type", Symbol.Type);
557 IO.mapRequired("Value", Symbol.Value);
558 IO.mapRequired("Name", Symbol.Name);
561 template <> void SymbolRecordImpl<DataSym>::map(IO &IO) {
562 IO.mapRequired("Type", Symbol.Type);
563 IO.mapOptional("Offset", Symbol.DataOffset, 0U);
564 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
565 IO.mapRequired("DisplayName", Symbol.Name);
568 template <> void SymbolRecordImpl<ThreadLocalDataSym>::map(IO &IO) {
569 IO.mapRequired("Type", Symbol.Type);
570 IO.mapOptional("Offset", Symbol.DataOffset, 0U);
571 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
572 IO.mapRequired("DisplayName", Symbol.Name);
575 template <> void SymbolRecordImpl<UsingNamespaceSym>::map(IO &IO) {
576 IO.mapRequired("Namespace", Symbol.Name);
579 template <> void SymbolRecordImpl<AnnotationSym>::map(IO &IO) {
580 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
581 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
582 IO.mapRequired("Strings", Symbol.Strings);
598 static void mapping(IO &io, SymbolRecordBase &Record) { Record.map(io); }
632 static void mapSymbolRecordImpl(IO &IO, const char *Class, SymbolKind Kind,
634 if (!IO.outputting())
637 IO.mapRequired(Class, *Obj.Symbol);
641 IO &IO, CodeViewYAML::SymbolRecord &Obj) {
643 if (IO.outputting())
645 IO.mapRequired("Kind", Kind);
649 mapSymbolRecordImpl<SymbolRecordImpl<ClassName>>(IO, #ClassName, Kind, \
657 mapSymbolRecordImpl<UnknownSymbolRecord>(IO, "UnknownSym", Kind, Obj);