@@ -130,15 +130,18 @@ void LTOCodeGenerator::initializeLTOPasses() {
130
130
initializeCFGSimplifyPassPass (R);
131
131
}
132
132
133
+ void LTOCodeGenerator::setAsmUndefinedRefs (LTOModule *Mod) {
134
+ const std::vector<const char *> &undefs = Mod->getAsmUndefinedRefs ();
135
+ for (int i = 0 , e = undefs.size (); i != e; ++i)
136
+ AsmUndefinedRefs[undefs[i]] = 1 ;
137
+ }
138
+
133
139
bool LTOCodeGenerator::addModule (LTOModule *Mod) {
134
140
assert (&Mod->getModule ().getContext () == &Context &&
135
141
" Expected module in same context" );
136
142
137
143
bool ret = TheLinker->linkInModule (Mod->takeModule ());
138
-
139
- const std::vector<const char *> &undefs = Mod->getAsmUndefinedRefs ();
140
- for (int i = 0 , e = undefs.size (); i != e; ++i)
141
- AsmUndefinedRefs[undefs[i]] = 1 ;
144
+ setAsmUndefinedRefs (Mod);
142
145
143
146
// We've just changed the input, so let's make sure we verify it.
144
147
HasVerifiedInput = false ;
@@ -154,10 +157,7 @@ void LTOCodeGenerator::setModule(std::unique_ptr<LTOModule> Mod) {
154
157
155
158
MergedModule = Mod->takeModule ();
156
159
TheLinker = make_unique<Linker>(*MergedModule);
157
-
158
- const std::vector<const char *> &Undefs = Mod->getAsmUndefinedRefs ();
159
- for (int I = 0 , E = Undefs.size (); I != E; ++I)
160
- AsmUndefinedRefs[Undefs[I]] = 1 ;
160
+ setAsmUndefinedRefs (&*Mod);
161
161
162
162
// We've just changed the input, so let's make sure we verify it.
163
163
HasVerifiedInput = false ;
0 commit comments