[lld] r178914 - Correctly pass ownership of MemoryBuffers.

Nick Kledzik kledzik at apple.com
Fri Apr 5 14:23:04 PDT 2013


Can you explain what was wrong previously?

I was intentionally passing the unqiue_ptr<MemoryBuffer> by reference because sometimes the constructed lld::File takes ownership of the buffer and sometimes it does not.

-Nick

On Apr 5, 2013, at 2:08 PM, Michael J. Spencer <bigcheesegs at gmail.com> wrote:
> Author: mspencer
> Date: Fri Apr  5 16:08:30 2013
> New Revision: 178914
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=178914&view=rev
> Log:
> Correctly pass ownership of MemoryBuffers.
> 
> Modified:
>    lld/trunk/include/lld/Core/TargetInfo.h
>    lld/trunk/include/lld/ReaderWriter/CoreTargetInfo.h
>    lld/trunk/include/lld/ReaderWriter/ELFTargetInfo.h
>    lld/trunk/include/lld/ReaderWriter/MachOTargetInfo.h
>    lld/trunk/include/lld/ReaderWriter/Reader.h
>    lld/trunk/include/lld/ReaderWriter/ReaderArchive.h
>    lld/trunk/include/lld/ReaderWriter/ReaderLinkerScript.h
>    lld/trunk/lib/Core/TargetInfo.cpp
>    lld/trunk/lib/ReaderWriter/CoreTargetInfo.cpp
>    lld/trunk/lib/ReaderWriter/ELF/ELFTargetInfo.cpp
>    lld/trunk/lib/ReaderWriter/ELF/Reader.cpp
>    lld/trunk/lib/ReaderWriter/MachO/MachOTargetInfo.cpp
>    lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp
>    lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
>    lld/trunk/lib/ReaderWriter/Reader.cpp
>    lld/trunk/lib/ReaderWriter/ReaderArchive.cpp
>    lld/trunk/lib/ReaderWriter/ReaderLinkerScript.cpp
>    lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
> 
> Modified: lld/trunk/include/lld/Core/TargetInfo.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/TargetInfo.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/Core/TargetInfo.h (original)
> +++ lld/trunk/include/lld/Core/TargetInfo.h Fri Apr  5 16:08:30 2013
> @@ -260,19 +260,19 @@ public:
>   /// \param [out] result The instantiated lld::File object is returned here.
>   /// The \p result is a vector because some input files parse into more than
>   /// one lld::File (e.g. YAML). 
> -  virtual error_code parseFile(std::unique_ptr<MemoryBuffer> &inputBuff,
> -                        std::vector<std::unique_ptr<File>> &result) const = 0;
> -  
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> inputBuff,
> +            std::vector<std::unique_ptr<File>> &result) const = 0;
> +
>   /// This is a wrapper around parseFile() where the input file is specified
>   /// by file system path.  The default implementation reads the input file
>   /// into a memory buffer and calls parseFile().
>   ///
>   /// \param path This is the file system path to the input file.
>   /// \param [out] result The instantiated lld::File object is returned here.
> -  virtual error_code readFile(StringRef path,
> -                        std::vector<std::unique_ptr<File>> &result) const;
> +  virtual error_code
> +  readFile(StringRef path, std::vector<std::unique_ptr<File>> &result) const;
> 
> - 
>   /// This method is called by core linking to give the Writer a chance
>   /// to add file format specific "files" to set of files to be linked. This is
>   /// how file format specific atoms can be added to the link.
> 
> Modified: lld/trunk/include/lld/ReaderWriter/CoreTargetInfo.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/CoreTargetInfo.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/CoreTargetInfo.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/CoreTargetInfo.h Fri Apr  5 16:08:30 2013
> @@ -30,11 +30,10 @@ public:
>   virtual ErrorOr<Reference::Kind>    relocKindFromString(StringRef str) const;
>   virtual ErrorOr<std::string> stringFromRelocKind(Reference::Kind kind) const;
> 
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> mb,
> +            std::vector<std::unique_ptr<File>> &result) const;
> 
> -  virtual error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                        std::vector<std::unique_ptr<File>> &result) const;
> -                        
> - 
>   void addPassNamed(StringRef name) {
>     _passNames.push_back(name);
>   }
> 
> Modified: lld/trunk/include/lld/ReaderWriter/ELFTargetInfo.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargetInfo.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/ELFTargetInfo.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/ELFTargetInfo.h Fri Apr  5 16:08:30 2013
> @@ -57,10 +57,10 @@ public:
>   }
>   virtual bool validate(raw_ostream &diagnostics);
> 
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> mb,
> +            std::vector<std::unique_ptr<File>> &result) const;
> 
> -  virtual error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                        std::vector<std::unique_ptr<File>> &result) const;
> -   
>   static std::unique_ptr<ELFTargetInfo> create(llvm::Triple);
> 
>   /// \brief Does this relocation belong in the dynamic plt relocation table?
> 
> Modified: lld/trunk/include/lld/ReaderWriter/MachOTargetInfo.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/MachOTargetInfo.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/MachOTargetInfo.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/MachOTargetInfo.h Fri Apr  5 16:08:30 2013
> @@ -31,9 +31,10 @@ public:
>   virtual ErrorOr<Reference::Kind> relocKindFromString(StringRef str) const;
>   virtual ErrorOr<std::string> stringFromRelocKind(Reference::Kind kind) const;
>   virtual bool validate(raw_ostream &diagnostics);
> -  
> -  virtual error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                        std::vector<std::unique_ptr<File>> &result) const;
> +
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> mb,
> +            std::vector<std::unique_ptr<File>> &result) const;
> 
>   uint32_t getCPUType() const;
>   uint32_t getCPUSubType() const;
> 
> Modified: lld/trunk/include/lld/ReaderWriter/Reader.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/Reader.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/Reader.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/Reader.h Fri Apr  5 16:08:30 2013
> @@ -39,8 +39,9 @@ public:
>   /// file) and create a File object.
>   ///
>   /// On success, the resulting File object takes ownership of the MemoryBuffer.
> -  virtual error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                          std::vector<std::unique_ptr<File>> &result) const = 0;
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> mb,
> +            std::vector<std::unique_ptr<File>> &result) const = 0;
> 
> protected:
>   // only concrete subclasses can be instantiated
> 
> Modified: lld/trunk/include/lld/ReaderWriter/ReaderArchive.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ReaderArchive.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/ReaderArchive.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/ReaderArchive.h Fri Apr  5 16:08:30 2013
> @@ -35,7 +35,7 @@ public:
> 
>   /// \brief Returns a vector of Files that are contained in the archive file
>   ///        pointed to by the Memorybuffer
> -  error_code parseFile(std::unique_ptr<llvm::MemoryBuffer> &mb,
> +  error_code parseFile(std::unique_ptr<llvm::MemoryBuffer> mb,
>                        std::vector<std::unique_ptr<File>> &result) const;
> 
> private:
> 
> Modified: lld/trunk/include/lld/ReaderWriter/ReaderLinkerScript.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ReaderLinkerScript.h?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/ReaderLinkerScript.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/ReaderLinkerScript.h Fri Apr  5 16:08:30 2013
> @@ -26,7 +26,7 @@ public:
> 
>   /// \brief Returns a vector of Files that are contained in the archive file
>   ///        pointed to by the Memorybuffer
> -  error_code parseFile(std::unique_ptr<llvm::MemoryBuffer> &mb,
> +  error_code parseFile(std::unique_ptr<llvm::MemoryBuffer> mb,
>                        std::vector<std::unique_ptr<File>> &result) const;
> };
> 
> 
> Modified: lld/trunk/lib/Core/TargetInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/TargetInfo.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/Core/TargetInfo.cpp (original)
> +++ lld/trunk/lib/Core/TargetInfo.cpp Fri Apr  5 16:08:30 2013
> @@ -37,9 +37,8 @@ error_code TargetInfo::readFile(StringRe
>   OwningPtr<llvm::MemoryBuffer> opmb;
>   if (error_code ec = llvm::MemoryBuffer::getFileOrSTDIN(path, opmb))
>     return ec;
> - 
> -  std::unique_ptr<MemoryBuffer> mb(opmb.take());
> -  return this->parseFile(mb, result);
> +
> +  return this->parseFile(std::unique_ptr<MemoryBuffer>(opmb.take()), result);
> }
> 
> error_code TargetInfo::writeFile(const File &linkedFile) const {
> 
> Modified: lld/trunk/lib/ReaderWriter/CoreTargetInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/CoreTargetInfo.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/CoreTargetInfo.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/CoreTargetInfo.cpp Fri Apr  5 16:08:30 2013
> @@ -358,12 +358,12 @@ void CoreTargetInfo::addPasses(PassManag
>   }
> }
> 
> -
> -error_code CoreTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                            std::vector<std::unique_ptr<File>> &result) const {
> +error_code
> +CoreTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> mb,
> +                          std::vector<std::unique_ptr<File>> &result) const {
>   if (!_reader)
> -      _reader = createReaderYAML(*this);
> -  return _reader->parseFile(mb,result);
> +    _reader = createReaderYAML(*this);
> +  return _reader->parseFile(std::move(mb), result);
> }
> 
> Writer &CoreTargetInfo::writer() const {
> 
> Modified: lld/trunk/lib/ReaderWriter/ELF/ELFTargetInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFTargetInfo.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/ELFTargetInfo.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/ELFTargetInfo.cpp Fri Apr  5 16:08:30 2013
> @@ -91,28 +91,27 @@ bool ELFTargetInfo::isDynamic() const {
>   return false;
> }
> 
> -
> -error_code ELFTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                          std::vector<std::unique_ptr<File>> &result) const {
> +error_code
> +ELFTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> mb,
> +                         std::vector<std::unique_ptr<File>> &result) const {
>   if (!_elfReader)
>     _elfReader = createReaderELF(*this);
> -  error_code ec = _elfReader->parseFile(mb, result);
> -  if (ec) {
> -    // Not an ELF file, check file extension to see if it might be yaml
> -    StringRef path = mb->getBufferIdentifier();
> -    if ( path.endswith(".objtxt") ) {
> -      if (!_yamlReader)
> -          _yamlReader = createReaderYAML(*this);
> -      ec = _yamlReader->parseFile(mb, result);
> -    }
> -    if (ec) {
> -      // Not a yaml file, assume it is a linkerscript
> -      if (!_linkerScriptReader)
> -        _linkerScriptReader.reset(new ReaderLinkerScript(*this));
> -      ec = _linkerScriptReader->parseFile(mb, result);
> -    }
> +  std::string path = mb->getBufferIdentifier();
> +  auto magic = llvm::sys::fs::identify_magic(mb->getBuffer());
> +  if (magic == llvm::sys::fs::file_magic::elf_relocatable ||
> +      magic == llvm::sys::fs::file_magic::elf_shared_object ||
> +      magic == llvm::sys::fs::file_magic::archive)
> +    return _elfReader->parseFile(std::move(mb), result);
> +  // Not an ELF file, check file extension to see if it might be yaml
> +  if (StringRef(path).endswith(".objtxt")) {
> +    if (!_yamlReader)
> +      _yamlReader = createReaderYAML(*this);
> +    return _yamlReader->parseFile(std::move(mb), result);
>   }
> -  return ec;
> +  // Not a yaml file, assume it is a linkerscript
> +  if (!_linkerScriptReader)
> +    _linkerScriptReader.reset(new ReaderLinkerScript(*this));
> +  return _linkerScriptReader->parseFile(std::move(mb), result);
> }
> 
> Writer &ELFTargetInfo::writer() const {
> 
> Modified: lld/trunk/lib/ReaderWriter/ELF/Reader.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Reader.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Reader.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Reader.cpp Fri Apr  5 16:08:30 2013
> @@ -82,8 +82,8 @@ public:
>       : lld::Reader(ti), _elfTargetInfo(ti), _readerArchive(ti, *this) {
>   }
> 
> -  error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                       std::vector<std::unique_ptr<File> > &result) const {
> +  error_code parseFile(std::unique_ptr<MemoryBuffer> mb,
> +                       std::vector<std::unique_ptr<File>> &result) const {
>     using llvm::object::ELFType;
>     llvm::sys::LLVMFileType fileType =
>         llvm::sys::IdentifyFileType(mb->getBufferStart(),
> @@ -96,7 +96,7 @@ public:
>     switch (fileType) {
>     case llvm::sys::ELF_Relocatable_FileType: {
>       std::unique_ptr<File> f(createELF<ELFFileCreateELFTraits>(
> -          getElfArchType(&*mb), MaxAlignment, _elfTargetInfo, std::move(mb),
> +          getElfArchType(mb.get()), MaxAlignment, _elfTargetInfo, std::move(mb),
>           ec));
>       if (ec)
>         return ec;
> @@ -105,14 +105,15 @@ public:
>     }
>     case llvm::sys::ELF_SharedObject_FileType: {
>       auto f = createELF<DynamicFileCreateELFTraits>(
> -          getElfArchType(&*mb), MaxAlignment, _elfTargetInfo, std::move(mb));
> +          getElfArchType(mb.get()), MaxAlignment, _elfTargetInfo,
> +                         std::move(mb));
>       if (!f)
>         return f;
>       result.push_back(std::move(*f));
>       break;
>     }
>     case llvm::sys::Archive_FileType:
> -      ec = _readerArchive.parseFile(mb, result);
> +      ec = _readerArchive.parseFile(std::move(mb), result);
>       break;
>     default:
>       return llvm::make_error_code(llvm::errc::executable_format_error);
> 
> Modified: lld/trunk/lib/ReaderWriter/MachO/MachOTargetInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachOTargetInfo.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/MachO/MachOTargetInfo.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/MachO/MachOTargetInfo.cpp Fri Apr  5 16:08:30 2013
> @@ -209,19 +209,18 @@ void MachOTargetInfo::addPasses(PassMana
>   pm.add(std::unique_ptr<Pass>(new LayoutPass()));
> }
> 
> -
> -
> -error_code MachOTargetInfo::parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                          std::vector<std::unique_ptr<File>> &result) const {
> +error_code MachOTargetInfo::parseFile(
> +    std::unique_ptr<MemoryBuffer> mb,
> +    std::vector<std::unique_ptr<File>> &result) const {
> //  if (!_machoReader)
> //    _machoReader = createReaderMachO(*this);
> //  error_code ec = _machoReader->parseFile(mb,result);
> //  if (ec) {
>     if (!_yamlReader)
>       _yamlReader = createReaderYAML(*this);
> -      return _yamlReader->parseFile(mb,result);
> +    return _yamlReader->parseFile(std::move(mb), result);
> //  }
> -  
> +
>   return error_code::success();
> }
> 
> 
> Modified: lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/Native/ReaderNative.cpp Fri Apr  5 16:08:30 2013
> @@ -915,9 +915,9 @@ public:
>   Reader(const TargetInfo &ti)
>    : lld::Reader(ti) {}
> 
> -  virtual error_code parseFile(
> -      std::unique_ptr<MemoryBuffer> &mb,
> -      std::vector<std::unique_ptr<lld::File> > &result) const {
> +  virtual error_code
> +  parseFile(std::unique_ptr<MemoryBuffer> mb,
> +            std::vector<std::unique_ptr<lld::File>> &result) const {
>     return File::make(_targetInfo, mb, mb->getBufferIdentifier(), result);
>   }
> };
> 
> Modified: lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp Fri Apr  5 16:08:30 2013
> @@ -369,8 +369,8 @@ class ReaderCOFF : public Reader {
> public:
>   ReaderCOFF(const TargetInfo &ti) : Reader(ti) {}
> 
> -  error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> -                       std::vector<std::unique_ptr<File> > &result) const {
> +  error_code parseFile(std::unique_ptr<MemoryBuffer> mb,
> +                       std::vector<std::unique_ptr<File>> &result) const {
>     llvm::error_code ec;
>     std::unique_ptr<File> f(new FileCOFF(_targetInfo, std::move(mb), ec));
>     if (ec) {
> 
> Modified: lld/trunk/lib/ReaderWriter/Reader.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/Reader.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/Reader.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/Reader.cpp Fri Apr  5 16:08:30 2013
> @@ -24,7 +24,6 @@ error_code Reader::readFile(StringRef pa
>   if (error_code ec = llvm::MemoryBuffer::getFileOrSTDIN(path, opmb))
>     return ec;
> 
> -  std::unique_ptr<MemoryBuffer> mb(opmb.take());
> -  return this->parseFile(mb, result);
> +  return parseFile(std::unique_ptr<MemoryBuffer>(opmb.take()), result);
> }
> } // end namespace lld
> 
> Modified: lld/trunk/lib/ReaderWriter/ReaderArchive.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ReaderArchive.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ReaderArchive.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ReaderArchive.cpp Fri Apr  5 16:08:30 2013
> @@ -48,7 +48,7 @@ public:
>     if (_targetInfo.logInputFiles())
>       llvm::outs() << buff->getBufferIdentifier() << "\n";
>     std::unique_ptr<MemoryBuffer> mb(buff.take());
> -    if (_targetInfo.parseFile(mb, result))
> +    if (_targetInfo.parseFile(std::move(mb), result))
>       return nullptr;
> 
>     assert(result.size() == 1);
> @@ -159,8 +159,9 @@ public:
> 
> // Returns a vector of Files that are contained in the archive file
> // pointed to by the MemoryBuffer
> -error_code ReaderArchive::parseFile(std::unique_ptr<llvm::MemoryBuffer> &mb,
> -                            std::vector<std::unique_ptr<File>> &result) const {
> +error_code
> +ReaderArchive::parseFile(std::unique_ptr<llvm::MemoryBuffer> mb,
> +                         std::vector<std::unique_ptr<File>> &result) const {
>   error_code ec;
> 
>   if (_targetInfo.forceLoadAllArchives()) {
> @@ -176,7 +177,7 @@ error_code ReaderArchive::parseFile(std:
>       std::unique_ptr<MemoryBuffer> mbc(buff.take());
>       if (_targetInfo.logInputFiles())
>         llvm::outs() << buff->getBufferIdentifier() << "\n";
> -      if ((ec = _targetInfo.parseFile(mbc, result)))
> +      if ((ec = _targetInfo.parseFile(std::move(mbc), result)))
>         return ec;
>     }
>   } else {
> 
> Modified: lld/trunk/lib/ReaderWriter/ReaderLinkerScript.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ReaderLinkerScript.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ReaderLinkerScript.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ReaderLinkerScript.cpp Fri Apr  5 16:08:30 2013
> @@ -79,9 +79,9 @@ private:
> } // end anon namespace
> 
> namespace lld {
> -error_code
> -ReaderLinkerScript::parseFile(std::unique_ptr<llvm::MemoryBuffer> &mb,
> -                            std::vector<std::unique_ptr<File> > &result) const {
> +error_code ReaderLinkerScript::parseFile(
> +    std::unique_ptr<llvm::MemoryBuffer> mb,
> +    std::vector<std::unique_ptr<File>> &result) const {
>   auto lsf = LinkerScriptFile::create(_targetInfo, std::move(mb));
>   if (!lsf)
>     return lsf;
> 
> Modified: lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp?rev=178914&r1=178913&r2=178914&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp Fri Apr  5 16:08:30 2013
> @@ -1342,7 +1342,7 @@ class ReaderYAML : public Reader {
> public:
>   ReaderYAML(const TargetInfo &ti) : Reader(ti) {}
> 
> -  error_code parseFile(std::unique_ptr<MemoryBuffer> &mb,
> +  error_code parseFile(std::unique_ptr<MemoryBuffer> mb,
>                        std::vector<std::unique_ptr<File>> &result) const {
>     // Note: we do not take ownership of the MemoryBuffer.  That is
>     // because yaml may produce multiple File objects, so there is no
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list