}
MemoryBuffer *Buffer = BufferOr.get().get();
- ErrorOr<Module *> ModuleOr = parseBitcodeFile(Buffer, Context);
+ ErrorOr<Module *> ModuleOr =
+ parseBitcodeFile(Buffer->getMemBufferRef(), Context);
if (!ModuleOr) {
DEBUG(dbgs() << "error: " << ModuleOr.getError().message() << "\n");
return nullptr;
map(G.getInitializer());
for (const GlobalAlias &A : M.aliases())
map(A.getAliasee());
- for (const Function &F : M)
+ for (const Function &F : M) {
if (F.hasPrefixData())
map(F.getPrefixData());
+ if (F.hasPrologueData())
+ map(F.getPrologueData());
+ }
// Function bodies.
for (const Function &F : M) {
changeValueUseList(G.getInitializer());
for (GlobalAlias &A : M.aliases())
changeValueUseList(A.getAliasee());
- for (Function &F : M)
+ for (Function &F : M) {
if (F.hasPrefixData())
changeValueUseList(F.getPrefixData());
+ if (F.hasPrologueData())
+ changeValueUseList(F.getPrologueData());
+ }
// Function bodies.
for (Function &F : M) {
SMDiagnostic Err;
// Load the input module...
- std::unique_ptr<Module> M;
- M.reset(ParseIRFile(InputFilename, Err, Context));
+ std::unique_ptr<Module> M = parseIRFile(InputFilename, Err, Context);
if (!M.get()) {
Err.print(argv[0], errs());