diff options
Diffstat (limited to 'llvm/lib/Transforms/IPO')
| -rw-r--r-- | llvm/lib/Transforms/IPO/Internalize.cpp | 16 | 
1 files changed, 7 insertions, 9 deletions
| diff --git a/llvm/lib/Transforms/IPO/Internalize.cpp b/llvm/lib/Transforms/IPO/Internalize.cpp index 008817c3c59..8423a8a4d71 100644 --- a/llvm/lib/Transforms/IPO/Internalize.cpp +++ b/llvm/lib/Transforms/IPO/Internalize.cpp @@ -27,10 +27,11 @@  #include "llvm/Pass.h"  #include "llvm/Support/CommandLine.h"  #include "llvm/Support/Debug.h" +#include "llvm/Support/LineIterator.h" +#include "llvm/Support/MemoryBuffer.h"  #include "llvm/Support/raw_ostream.h"  #include "llvm/Transforms/IPO.h"  #include "llvm/Transforms/Utils/GlobalStatus.h" -#include <fstream>  #include <set>  using namespace llvm; @@ -72,18 +73,15 @@ private:    void LoadFile(StringRef Filename) {      // Load the APIFile... -    std::ifstream In(Filename.data()); -    if (!In.good()) { +    ErrorOr<std::unique_ptr<MemoryBuffer>> Buf = +        MemoryBuffer::getFile(Filename); +    if (!Buf) {        errs() << "WARNING: Internalize couldn't load file '" << Filename               << "'! Continuing as if it's empty.\n";        return; // Just continue as if the file were empty      } -    while (In) { -      std::string Symbol; -      In >> Symbol; -      if (!Symbol.empty()) -        ExternalNames.insert(Symbol); -    } +    for (line_iterator I(*Buf->get(), true), E; I != E; ++I) +      ExternalNames.insert(*I);    }  };  } // end anonymous namespace | 

