+ struct FnStubInfo {
+ std::string Stub, LazyPtr, AnonSymbol;
+
+ FnStubInfo() {}
+
+ void Init(const GlobalValue *GV, Mangler *Mang) {
+ // Already initialized.
+ if (!Stub.empty()) return;
+ Stub = Mang->getMangledName(GV, "$stub", true);
+ LazyPtr = Mang->getMangledName(GV, "$lazy_ptr", true);
+ AnonSymbol = Mang->getMangledName(GV, "$stub$tmp", true);
+ }
+
+ void Init(const std::string &GV, Mangler *Mang) {
+ // Already initialized.
+ if (!Stub.empty()) return;
+ Stub = Mang->makeNameProper(GV+"$stub", true);
+ LazyPtr = Mang->makeNameProper(GV+"$lazy_ptr", true);
+ AnonSymbol = Mang->makeNameProper(GV+"$stub$tmp", true);
+ }
+ };
+
+ StringMap<FnStubInfo> FnStubs;