Lines Matching refs:Stub

140   static void mapping(IO &IO, IFSStub &Stub) {
143 IO.mapRequired("IfsVersion", Stub.IfsVersion);
144 IO.mapOptional("SoName", Stub.SoName);
145 IO.mapOptional("Target", Stub.Target);
146 IO.mapOptional("NeededLibs", Stub.NeededLibs);
147 IO.mapRequired("Symbols", Stub.Symbols);
153 static void mapping(IO &IO, IFSStubTriple &Stub) {
156 IO.mapRequired("IfsVersion", Stub.IfsVersion);
157 IO.mapOptional("SoName", Stub.SoName);
158 IO.mapOptional("Target", Stub.Target.Triple);
159 IO.mapOptional("NeededLibs", Stub.NeededLibs);
160 IO.mapRequired("Symbols", Stub.Symbols);
181 std::unique_ptr<IFSStubTriple> Stub(new IFSStubTriple());
183 YamlIn >> *Stub;
185 YamlIn >> *static_cast<IFSStub *>(Stub.get());
191 if (Stub->IfsVersion > IFSVersionCurrent)
193 "IFS version " + Stub->IfsVersion.getAsString() + " is unsupported.",
195 if (Stub->Target.ArchString) {
196 Stub->Target.Arch =
197 ELF::convertArchNameToEMachine(*Stub->Target.ArchString);
199 return std::move(Stub);
202 Error ifs::writeIFSToOutputStream(raw_ostream &OS, const IFSStub &Stub) {
204 std::unique_ptr<IFSStubTriple> CopyStub(new IFSStubTriple(Stub));
205 if (Stub.Target.Arch) {
207 std::string(ELF::convertEMachineToArchName(*Stub.Target.Arch));
209 IFSTarget Target = Stub.Target;
221 IFSStub &Stub, std::optional<IFSArch> OverrideArch,
227 if (Stub.Target.Arch && *Stub.Target.Arch != *OverrideArch) {
231 Stub.Target.Arch = *OverrideArch;
234 if (Stub.Target.Endianness &&
235 *Stub.Target.Endianness != *OverrideEndianness) {
239 Stub.Target.Endianness = *OverrideEndianness;
242 if (Stub.Target.BitWidth && *Stub.Target.BitWidth != *OverrideBitWidth) {
246 Stub.Target.BitWidth = *OverrideBitWidth;
249 if (Stub.Target.Triple && *Stub.Target.Triple != *OverrideTriple) {
253 Stub.Target.Triple = *OverrideTriple;
258 Error ifs::validateIFSTarget(IFSStub &Stub, bool ParseTriple) {
260 if (Stub.Target.Triple) {
261 if (Stub.Target.Arch || Stub.Target.BitWidth || Stub.Target.Endianness ||
262 Stub.Target.ObjectFormat) {
268 IFSTarget TargetFromTriple = parseTriple(*Stub.Target.Triple);
269 Stub.Target.Arch = TargetFromTriple.Arch;
270 Stub.Target.BitWidth = TargetFromTriple.BitWidth;
271 Stub.Target.Endianness = TargetFromTriple.Endianness;
275 if (!Stub.Target.Arch || !Stub.Target.BitWidth || !Stub.Target.Endianness) {
277 if (!Stub.Target.Arch) {
281 if (!Stub.Target.BitWidth) {
285 if (!Stub.Target.Endianness) {
314 void ifs::stripIFSTarget(IFSStub &Stub, bool StripTriple, bool StripArch,
317 Stub.Target.Arch.reset();
318 Stub.Target.ArchString.reset();
321 Stub.Target.Endianness.reset();
324 Stub.Target.BitWidth.reset();
327 Stub.Target.Triple.reset();
329 if (!Stub.Target.Arch && !Stub.Target.BitWidth && !Stub.Target.Endianness) {
330 Stub.Target.ObjectFormat.reset();
334 Error ifs::filterIFSSyms(IFSStub &Stub, bool StripUndefined,
355 llvm::erase_if(Stub.Symbols, Filter);