[llvm] r202959 - [C++11] Add overloads for externally used OwningPtr functions.
Alp Toker
alp at nuanti.com
Mon May 5 16:42:45 PDT 2014
On 05/03/2014 10:27, Ahmed Charles wrote:
> Author: ace2001ac
> Date: Wed Mar 5 04:27:34 2014
> New Revision: 202959
>
> URL: http://llvm.org/viewvc/llvm-project?rev=202959&view=rev
> Log:
> [C++11] Add overloads for externally used OwningPtr functions.
Two months later there are still two copies of this tangly code,
doubling the cost of maintenance and review.
>
> This will allow external callers of these functions to switch over time
> rather than forcing a breaking change all a once. These particular
> functions were determined by building clang/lld/lldb.
Was someone supposed to be working on switching the functions, or is it
speculative?
Perhaps -Wdeprecated -Wno-error=deprecated is in order or just going
ahead and making the necessary updates..
Alp.
>
> Modified:
> llvm/trunk/include/llvm/MC/MCDisassembler.h
> llvm/trunk/include/llvm/Object/Archive.h
> llvm/trunk/include/llvm/Support/FileOutputBuffer.h
> llvm/trunk/include/llvm/Support/MemoryBuffer.h
> llvm/trunk/lib/MC/MCDisassembler.cpp
> llvm/trunk/lib/Object/Archive.cpp
> llvm/trunk/lib/Support/FileOutputBuffer.cpp
> llvm/trunk/lib/Support/MemoryBuffer.cpp
> llvm/trunk/unittests/Support/MemoryBufferTest.cpp
>
> Modified: llvm/trunk/include/llvm/MC/MCDisassembler.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCDisassembler.h?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCDisassembler.h (original)
> +++ llvm/trunk/include/llvm/MC/MCDisassembler.h Wed Mar 5 04:27:34 2014
> @@ -123,6 +123,11 @@ public:
> void *DisInfo,
> MCContext *Ctx,
> OwningPtr<MCRelocationInfo> &RelInfo);
> + void setupForSymbolicDisassembly(LLVMOpInfoCallback GetOpInfo,
> + LLVMSymbolLookupCallback SymbolLookUp,
> + void *DisInfo,
> + MCContext *Ctx,
> + std::unique_ptr<MCRelocationInfo> &RelInfo);
>
> LLVMOpInfoCallback getLLVMOpInfoCallback() const { return GetOpInfo; }
> LLVMSymbolLookupCallback getLLVMSymbolLookupCallback() const {
>
> Modified: llvm/trunk/include/llvm/Object/Archive.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/Archive.h?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Object/Archive.h (original)
> +++ llvm/trunk/include/llvm/Object/Archive.h Wed Mar 5 04:27:34 2014
> @@ -91,9 +91,13 @@ public:
>
> error_code getMemoryBuffer(OwningPtr<MemoryBuffer> &Result,
> bool FullPath = false) const;
> + error_code getMemoryBuffer(std::unique_ptr<MemoryBuffer> &Result,
> + bool FullPath = false) const;
>
> error_code getAsBinary(OwningPtr<Binary> &Result,
> LLVMContext *Context = 0) const;
> + error_code getAsBinary(std::unique_ptr<Binary> &Result,
> + LLVMContext *Context = 0) const;
> };
>
> class child_iterator {
>
> Modified: llvm/trunk/include/llvm/Support/FileOutputBuffer.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/FileOutputBuffer.h?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/FileOutputBuffer.h (original)
> +++ llvm/trunk/include/llvm/Support/FileOutputBuffer.h Wed Mar 5 04:27:34 2014
> @@ -43,6 +43,9 @@ public:
> static error_code create(StringRef FilePath, size_t Size,
> OwningPtr<FileOutputBuffer> &Result,
> unsigned Flags = 0);
> + static error_code create(StringRef FilePath, size_t Size,
> + std::unique_ptr<FileOutputBuffer> &Result,
> + unsigned Flags = 0);
>
> /// Returns a pointer to the start of the buffer.
> uint8_t *getBufferStart() {
> @@ -83,7 +86,7 @@ private:
> FileOutputBuffer(llvm::sys::fs::mapped_file_region *R,
> StringRef Path, StringRef TempPath);
>
> - OwningPtr<llvm::sys::fs::mapped_file_region> Region;
> + std::unique_ptr<llvm::sys::fs::mapped_file_region> Region;
> SmallString<128> FinalPath;
> SmallString<128> TempPath;
> };
>
> Modified: llvm/trunk/include/llvm/Support/MemoryBuffer.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MemoryBuffer.h?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/MemoryBuffer.h (original)
> +++ llvm/trunk/include/llvm/Support/MemoryBuffer.h Wed Mar 5 04:27:34 2014
> @@ -19,6 +19,7 @@
> #include "llvm/Support/CBindingWrapping.h"
> #include "llvm/Support/Compiler.h"
> #include "llvm/Support/DataTypes.h"
> +#include <memory>
>
> namespace llvm {
>
> @@ -66,7 +67,11 @@ public:
> /// MemoryBuffer if successful, otherwise returning null. If FileSize is
> /// specified, this means that the client knows that the file exists and that
> /// it has the specified size.
> - static error_code getFile(Twine Filename, OwningPtr<MemoryBuffer> &result,
> + static error_code getFile(Twine Filename, OwningPtr<MemoryBuffer> &Result,
> + int64_t FileSize = -1,
> + bool RequiresNullTerminator = true);
> + static error_code getFile(Twine Filename,
> + std::unique_ptr<MemoryBuffer> &Result,
> int64_t FileSize = -1,
> bool RequiresNullTerminator = true);
>
> @@ -76,6 +81,9 @@ public:
> static error_code getOpenFileSlice(int FD, const char *Filename,
> OwningPtr<MemoryBuffer> &Result,
> uint64_t MapSize, int64_t Offset);
> + static error_code getOpenFileSlice(int FD, const char *Filename,
> + std::unique_ptr<MemoryBuffer> &Result,
> + uint64_t MapSize, int64_t Offset);
>
> /// Given an already-open file descriptor, read the file and return a
> /// MemoryBuffer.
> @@ -83,6 +91,10 @@ public:
> OwningPtr<MemoryBuffer> &Result,
> uint64_t FileSize,
> bool RequiresNullTerminator = true);
> + static error_code getOpenFile(int FD, const char *Filename,
> + std::unique_ptr<MemoryBuffer> &Result,
> + uint64_t FileSize,
> + bool RequiresNullTerminator = true);
>
> /// getMemBuffer - Open the specified memory range as a MemoryBuffer. Note
> /// that InputData must be null terminated if RequiresNullTerminator is true.
> @@ -111,14 +123,18 @@ public:
>
> /// getSTDIN - Read all of stdin into a file buffer, and return it.
> /// If an error occurs, this returns null and sets ec.
> - static error_code getSTDIN(OwningPtr<MemoryBuffer> &result);
> + static error_code getSTDIN(OwningPtr<MemoryBuffer> &Result);
> + static error_code getSTDIN(std::unique_ptr<MemoryBuffer> &Result);
>
>
> /// getFileOrSTDIN - Open the specified file as a MemoryBuffer, or open stdin
> /// if the Filename is "-". If an error occurs, this returns null and sets
> /// ec.
> static error_code getFileOrSTDIN(StringRef Filename,
> - OwningPtr<MemoryBuffer> &result,
> + OwningPtr<MemoryBuffer> &Result,
> + int64_t FileSize = -1);
> + static error_code getFileOrSTDIN(StringRef Filename,
> + std::unique_ptr<MemoryBuffer> &Result,
> int64_t FileSize = -1);
>
> //===--------------------------------------------------------------------===//
>
> Modified: llvm/trunk/lib/MC/MCDisassembler.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDisassembler.cpp?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCDisassembler.cpp (original)
> +++ llvm/trunk/lib/MC/MCDisassembler.cpp Wed Mar 5 04:27:34 2014
> @@ -33,6 +33,18 @@ MCDisassembler::setupForSymbolicDisassem
> SymbolLookUp, DisInfo));
> }
>
> +void
> +MCDisassembler::setupForSymbolicDisassembly(
> + LLVMOpInfoCallback GetOpInfo,
> + LLVMSymbolLookupCallback SymbolLookUp,
> + void *DisInfo,
> + MCContext *Ctx,
> + std::unique_ptr<MCRelocationInfo> &RelInfo) {
> + OwningPtr<MCRelocationInfo> MCRI;
> + setupForSymbolicDisassembly(GetOpInfo, SymbolLookUp, DisInfo, Ctx, MCRI);
> + RelInfo = MCRI.take_unique();
> +}
> +
> bool MCDisassembler::tryAddingSymbolicOperand(MCInst &Inst, int64_t Value,
> uint64_t Address, bool IsBranch,
> uint64_t Offset,
>
> Modified: llvm/trunk/lib/Object/Archive.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/Archive.cpp?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/Archive.cpp (original)
> +++ llvm/trunk/lib/Object/Archive.cpp Wed Mar 5 04:27:34 2014
> @@ -13,6 +13,7 @@
>
> #include "llvm/Object/Archive.h"
> #include "llvm/ADT/APInt.h"
> +#include "llvm/ADT/OwningPtr.h"
> #include "llvm/ADT/SmallString.h"
> #include "llvm/ADT/Twine.h"
> #include "llvm/Support/Endian.h"
> @@ -168,7 +169,7 @@ error_code Archive::Child::getName(Strin
> return object_error::success;
> }
>
> -error_code Archive::Child::getMemoryBuffer(OwningPtr<MemoryBuffer> &Result,
> +error_code Archive::Child::getMemoryBuffer(std::unique_ptr<MemoryBuffer> &Result,
> bool FullPath) const {
> StringRef Name;
> if (error_code ec = getName(Name))
> @@ -182,25 +183,41 @@ error_code Archive::Child::getMemoryBuff
> return error_code::success();
> }
>
> -error_code Archive::Child::getAsBinary(OwningPtr<Binary> &Result,
> +error_code Archive::Child::getMemoryBuffer(OwningPtr<MemoryBuffer> &Result,
> + bool FullPath) const {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getMemoryBuffer(MB, FullPath);
> + Result = std::move(MB);
> + return ec;
> +}
> +
> +error_code Archive::Child::getAsBinary(std::unique_ptr<Binary> &Result,
> LLVMContext *Context) const {
> - OwningPtr<Binary> ret;
> - OwningPtr<MemoryBuffer> Buff;
> + std::unique_ptr<Binary> ret;
> + std::unique_ptr<MemoryBuffer> Buff;
> if (error_code ec = getMemoryBuffer(Buff))
> return ec;
> - ErrorOr<Binary *> BinaryOrErr = createBinary(Buff.take(), Context);
> + ErrorOr<Binary *> BinaryOrErr = createBinary(Buff.release(), Context);
> if (error_code EC = BinaryOrErr.getError())
> return EC;
> Result.reset(BinaryOrErr.get());
> return object_error::success;
> }
>
> +error_code Archive::Child::getAsBinary(OwningPtr<Binary> &Result,
> + LLVMContext *Context) const {
> + std::unique_ptr<Binary> B;
> + error_code ec = getAsBinary(B, Context);
> + Result = std::move(B);
> + return ec;
> +}
> +
> ErrorOr<Archive*> Archive::create(MemoryBuffer *Source) {
> error_code EC;
> - OwningPtr<Archive> Ret(new Archive(Source, EC));
> + std::unique_ptr<Archive> Ret(new Archive(Source, EC));
> if (EC)
> return EC;
> - return Ret.take();
> + return Ret.release();
> }
>
> Archive::Archive(MemoryBuffer *source, error_code &ec)
>
> Modified: llvm/trunk/lib/Support/FileOutputBuffer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FileOutputBuffer.cpp?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/FileOutputBuffer.cpp (original)
> +++ llvm/trunk/lib/Support/FileOutputBuffer.cpp Wed Mar 5 04:27:34 2014
> @@ -33,7 +33,7 @@ FileOutputBuffer::~FileOutputBuffer() {
>
> error_code FileOutputBuffer::create(StringRef FilePath,
> size_t Size,
> - OwningPtr<FileOutputBuffer> &Result,
> + std::unique_ptr<FileOutputBuffer> &Result,
> unsigned Flags) {
> // If file already exists, it must be a regular file (to be mappable).
> sys::fs::file_status Stat;
> @@ -73,18 +73,28 @@ error_code FileOutputBuffer::create(Stri
> if (EC)
> return EC;
>
> - OwningPtr<mapped_file_region> MappedFile(new mapped_file_region(
> + std::unique_ptr<mapped_file_region> MappedFile(new mapped_file_region(
> FD, true, mapped_file_region::readwrite, Size, 0, EC));
> if (EC)
> return EC;
>
> Result.reset(new FileOutputBuffer(MappedFile.get(), FilePath, TempFilePath));
> if (Result)
> - MappedFile.take();
> + MappedFile.release();
>
> return error_code::success();
> }
>
> +error_code FileOutputBuffer::create(StringRef FilePath,
> + size_t Size,
> + OwningPtr<FileOutputBuffer> &Result,
> + unsigned Flags) {
> + std::unique_ptr<FileOutputBuffer> FOB;
> + error_code ec = create(FilePath, Size, FOB, Flags);
> + Result = std::move(FOB);
> + return ec;
> +}
> +
> error_code FileOutputBuffer::commit(int64_t NewSmallerSize) {
> // Unmap buffer, letting OS flush dirty pages to file on disk.
> Region.reset(0);
>
> Modified: llvm/trunk/lib/Support/MemoryBuffer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/MemoryBuffer.cpp?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/MemoryBuffer.cpp (original)
> +++ llvm/trunk/lib/Support/MemoryBuffer.cpp Wed Mar 5 04:27:34 2014
> @@ -166,13 +166,23 @@ MemoryBuffer *MemoryBuffer::getNewMemBuf
> /// in *ErrStr with a reason. If stdin is empty, this API (unlike getSTDIN)
> /// returns an empty buffer.
> error_code MemoryBuffer::getFileOrSTDIN(StringRef Filename,
> - OwningPtr<MemoryBuffer> &result,
> + std::unique_ptr<MemoryBuffer> &Result,
> int64_t FileSize) {
> if (Filename == "-")
> - return getSTDIN(result);
> - return getFile(Filename, result, FileSize);
> + return getSTDIN(Result);
> + return getFile(Filename, Result, FileSize);
> }
>
> +error_code MemoryBuffer::getFileOrSTDIN(StringRef Filename,
> + OwningPtr<MemoryBuffer> &Result,
> + int64_t FileSize) {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getFileOrSTDIN(Filename, MB, FileSize);
> + Result = std::move(MB);
> + return ec;
> +}
> +
> +
> //===----------------------------------------------------------------------===//
> // MemoryBuffer::getFile implementation.
> //===----------------------------------------------------------------------===//
> @@ -220,7 +230,7 @@ public:
>
> static error_code getMemoryBufferForStream(int FD,
> StringRef BufferName,
> - OwningPtr<MemoryBuffer> &result) {
> + std::unique_ptr<MemoryBuffer> &Result) {
> const ssize_t ChunkSize = 4096*4;
> SmallString<ChunkSize> Buffer;
> ssize_t ReadBytes;
> @@ -235,39 +245,50 @@ static error_code getMemoryBufferForStre
> Buffer.set_size(Buffer.size() + ReadBytes);
> } while (ReadBytes != 0);
>
> - result.reset(MemoryBuffer::getMemBufferCopy(Buffer, BufferName));
> + Result.reset(MemoryBuffer::getMemBufferCopy(Buffer, BufferName));
> return error_code::success();
> }
>
> static error_code getFileAux(const char *Filename,
> - OwningPtr<MemoryBuffer> &result, int64_t FileSize,
> + std::unique_ptr<MemoryBuffer> &Result,
> + int64_t FileSize,
> bool RequiresNullTerminator);
>
> error_code MemoryBuffer::getFile(Twine Filename,
> - OwningPtr<MemoryBuffer> &result,
> + std::unique_ptr<MemoryBuffer> &Result,
> int64_t FileSize,
> bool RequiresNullTerminator) {
> // Ensure the path is null terminated.
> SmallString<256> PathBuf;
> StringRef NullTerminatedName = Filename.toNullTerminatedStringRef(PathBuf);
> - return getFileAux(NullTerminatedName.data(), result, FileSize,
> + return getFileAux(NullTerminatedName.data(), Result, FileSize,
> RequiresNullTerminator);
> }
>
> +error_code MemoryBuffer::getFile(Twine Filename,
> + OwningPtr<MemoryBuffer> &Result,
> + int64_t FileSize,
> + bool RequiresNullTerminator) {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getFile(Filename, MB, FileSize, RequiresNullTerminator);
> + Result = std::move(MB);
> + return ec;
> +}
> +
> static error_code getOpenFileImpl(int FD, const char *Filename,
> - OwningPtr<MemoryBuffer> &Result,
> + std::unique_ptr<MemoryBuffer> &Result,
> uint64_t FileSize, uint64_t MapSize,
> int64_t Offset, bool RequiresNullTerminator);
>
> static error_code getFileAux(const char *Filename,
> - OwningPtr<MemoryBuffer> &result, int64_t FileSize,
> + std::unique_ptr<MemoryBuffer> &Result, int64_t FileSize,
> bool RequiresNullTerminator) {
> int FD;
> error_code EC = sys::fs::openFileForRead(Filename, FD);
> if (EC)
> return EC;
>
> - error_code ret = getOpenFileImpl(FD, Filename, result, FileSize, FileSize, 0,
> + error_code ret = getOpenFileImpl(FD, Filename, Result, FileSize, FileSize, 0,
> RequiresNullTerminator);
> close(FD);
> return ret;
> @@ -325,7 +346,7 @@ static bool shouldUseMmap(int FD,
> }
>
> static error_code getOpenFileImpl(int FD, const char *Filename,
> - OwningPtr<MemoryBuffer> &result,
> + std::unique_ptr<MemoryBuffer> &Result,
> uint64_t FileSize, uint64_t MapSize,
> int64_t Offset, bool RequiresNullTerminator) {
> static int PageSize = sys::process::get_self()->page_size();
> @@ -346,7 +367,7 @@ static error_code getOpenFileImpl(int FD
> sys::fs::file_type Type = Status.type();
> if (Type != sys::fs::file_type::regular_file &&
> Type != sys::fs::file_type::block_file)
> - return getMemoryBufferForStream(FD, Filename, result);
> + return getMemoryBufferForStream(FD, Filename, Result);
>
> FileSize = Status.getSize();
> }
> @@ -356,7 +377,7 @@ static error_code getOpenFileImpl(int FD
> if (shouldUseMmap(FD, FileSize, MapSize, Offset, RequiresNullTerminator,
> PageSize)) {
> error_code EC;
> - result.reset(new (NamedBufferAlloc(Filename)) MemoryBufferMMapFile(
> + Result.reset(new (NamedBufferAlloc(Filename)) MemoryBufferMMapFile(
> RequiresNullTerminator, FD, MapSize, Offset, EC));
> if (!EC)
> return error_code::success();
> @@ -369,7 +390,7 @@ static error_code getOpenFileImpl(int FD
> return make_error_code(errc::not_enough_memory);
> }
>
> - OwningPtr<MemoryBuffer> SB(Buf);
> + std::unique_ptr<MemoryBuffer> SB(Buf);
> char *BufPtr = const_cast<char*>(SB->getBufferStart());
>
> size_t BytesLeft = MapSize;
> @@ -400,34 +421,61 @@ static error_code getOpenFileImpl(int FD
> BufPtr += NumRead;
> }
>
> - result.swap(SB);
> + Result.swap(SB);
> return error_code::success();
> }
>
> error_code MemoryBuffer::getOpenFile(int FD, const char *Filename,
> - OwningPtr<MemoryBuffer> &Result,
> + std::unique_ptr<MemoryBuffer> &Result,
> uint64_t FileSize,
> bool RequiresNullTerminator) {
> return getOpenFileImpl(FD, Filename, Result, FileSize, FileSize, 0,
> RequiresNullTerminator);
> }
>
> +error_code MemoryBuffer::getOpenFile(int FD, const char *Filename,
> + OwningPtr<MemoryBuffer> &Result,
> + uint64_t FileSize,
> + bool RequiresNullTerminator) {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getOpenFileImpl(FD, Filename, MB, FileSize, FileSize, 0,
> + RequiresNullTerminator);
> + Result = std::move(MB);
> + return ec;
> +}
> +
> error_code MemoryBuffer::getOpenFileSlice(int FD, const char *Filename,
> - OwningPtr<MemoryBuffer> &Result,
> + std::unique_ptr<MemoryBuffer> &Result,
> uint64_t MapSize, int64_t Offset) {
> return getOpenFileImpl(FD, Filename, Result, -1, MapSize, Offset, false);
> }
>
> +error_code MemoryBuffer::getOpenFileSlice(int FD, const char *Filename,
> + OwningPtr<MemoryBuffer> &Result,
> + uint64_t MapSize, int64_t Offset) {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getOpenFileImpl(FD, Filename, MB, -1, MapSize, Offset, false);
> + Result = std::move(MB);
> + return ec;
> +}
> +
> //===----------------------------------------------------------------------===//
> // MemoryBuffer::getSTDIN implementation.
> //===----------------------------------------------------------------------===//
>
> -error_code MemoryBuffer::getSTDIN(OwningPtr<MemoryBuffer> &result) {
> +error_code MemoryBuffer::getSTDIN(std::unique_ptr<MemoryBuffer> &Result) {
> // Read in all of the data from stdin, we cannot mmap stdin.
> //
> // FIXME: That isn't necessarily true, we should try to mmap stdin and
> // fallback if it fails.
> sys::ChangeStdinToBinary();
>
> - return getMemoryBufferForStream(0, "<stdin>", result);
> + return getMemoryBufferForStream(0, "<stdin>", Result);
> +}
> +
> +error_code MemoryBuffer::getSTDIN(OwningPtr<MemoryBuffer> &Result) {
> + std::unique_ptr<MemoryBuffer> MB;
> + error_code ec = getSTDIN(MB);
> + Result = std::move(MB);
> + return ec;
> }
>
> Modified: llvm/trunk/unittests/Support/MemoryBufferTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/MemoryBufferTest.cpp?rev=202959&r1=202958&r2=202959&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Support/MemoryBufferTest.cpp (original)
> +++ llvm/trunk/unittests/Support/MemoryBufferTest.cpp Wed Mar 5 04:27:34 2014
> @@ -78,7 +78,7 @@ TEST_F(MemoryBufferTest, NullTerminator4
> }
> OF.close();
>
> - OwningPtr<MemoryBuffer> MB;
> + OwningBuffer MB;
> error_code EC = MemoryBuffer::getFile(TestPath.c_str(), MB);
> ASSERT_FALSE(EC);
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
http://www.nuanti.com
the browser experts
More information about the llvm-commits
mailing list