LLVM 20.0.0git
ArchiveYAML.cpp
Go to the documentation of this file.
1//===- ArchiveYAML.cpp - ELF YAMLIO implementation -------------------- ----===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines classes for handling the YAML representation of archives.
10//
11//===----------------------------------------------------------------------===//
12
14
15namespace llvm {
16
17namespace yaml {
18
20 assert(!IO.getContext() && "The IO context is initialized already");
21 IO.setContext(&A);
22 IO.mapTag("!Arch", true);
23 IO.mapOptional("Magic", A.Magic, "!<arch>\n");
24 IO.mapOptional("Members", A.Members);
25 IO.mapOptional("Content", A.Content);
26 IO.setContext(nullptr);
27}
28
31 if (A.Members && A.Content)
32 return "\"Content\" and \"Members\" cannot be used together";
33 return "";
34}
35
37 IO &IO, ArchYAML::Archive::Child &E) {
38 assert(IO.getContext() && "The IO context is not initialized");
39 for (auto &P : E.Fields)
40 IO.mapOptional(P.first.data(), P.second.Value, P.second.DefaultValue);
41 IO.mapOptional("Content", E.Content);
42 IO.mapOptional("PaddingByte", E.PaddingByte);
43}
44
45std::string
48 for (auto &P : C.Fields)
49 if (P.second.Value.size() > P.second.MaxLength)
50 return ("the maximum length of \"" + P.first + "\" field is " +
51 Twine(P.second.MaxLength))
52 .str();
53 return "";
54}
55
56} // end namespace yaml
57
58} // end namespace llvm
This file declares classes for handling the YAML representation of archives.
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
#define P(N)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Definition: Twine.h:81
@ C
The default llvm calling convention, compatible with C.
Definition: CallingConv.h:34
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18