mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-24 21:00:36 +00:00
These classes only need a StringRef, not a MemoryBuffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215945 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
285133714f
commit
0282239051
@ -161,10 +161,10 @@ static const char *isLabelTail(const char *CurPtr) {
|
||||
// Lexer definition.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
LLLexer::LLLexer(MemoryBuffer *StartBuf, SourceMgr &sm, SMDiagnostic &Err,
|
||||
LLLexer::LLLexer(StringRef StartBuf, SourceMgr &sm, SMDiagnostic &Err,
|
||||
LLVMContext &C)
|
||||
: CurBuf(StartBuf), ErrorInfo(Err), SM(sm), Context(C), APFloatVal(0.0) {
|
||||
CurPtr = CurBuf->getBufferStart();
|
||||
CurPtr = CurBuf.begin();
|
||||
}
|
||||
|
||||
int LLLexer::getNextChar() {
|
||||
@ -174,7 +174,7 @@ int LLLexer::getNextChar() {
|
||||
case 0:
|
||||
// A nul character in the stream is either the end of the current buffer or
|
||||
// a random nul in the file. Disambiguate that here.
|
||||
if (CurPtr-1 != CurBuf->getBufferEnd())
|
||||
if (CurPtr-1 != CurBuf.end())
|
||||
return 0; // Just whitespace.
|
||||
|
||||
// Otherwise, return end of file.
|
||||
|
@ -28,7 +28,7 @@ namespace llvm {
|
||||
|
||||
class LLLexer {
|
||||
const char *CurPtr;
|
||||
MemoryBuffer *CurBuf;
|
||||
StringRef CurBuf;
|
||||
SMDiagnostic &ErrorInfo;
|
||||
SourceMgr &SM;
|
||||
LLVMContext &Context;
|
||||
@ -43,7 +43,7 @@ namespace llvm {
|
||||
APSInt APSIntVal;
|
||||
|
||||
public:
|
||||
explicit LLLexer(MemoryBuffer *StartBuf, SourceMgr &SM, SMDiagnostic &,
|
||||
explicit LLLexer(StringRef StartBuf, SourceMgr &SM, SMDiagnostic &,
|
||||
LLVMContext &C);
|
||||
~LLLexer() {}
|
||||
|
||||
|
@ -136,7 +136,7 @@ namespace llvm {
|
||||
std::map<unsigned, AttrBuilder> NumberedAttrBuilders;
|
||||
|
||||
public:
|
||||
LLParser(MemoryBuffer *F, SourceMgr &SM, SMDiagnostic &Err, Module *m) :
|
||||
LLParser(StringRef F, SourceMgr &SM, SMDiagnostic &Err, Module *m) :
|
||||
Context(m->getContext()), Lex(F, SM, Err, m->getContext()),
|
||||
M(m) {}
|
||||
bool Run();
|
||||
|
@ -29,11 +29,11 @@ Module *llvm::ParseAssembly(std::unique_ptr<MemoryBuffer> F, Module *M,
|
||||
|
||||
// If we are parsing into an existing module, do it.
|
||||
if (M)
|
||||
return LLParser(Buf, SM, Err, M).Run() ? nullptr : M;
|
||||
return LLParser(Buf->getBuffer(), SM, Err, M).Run() ? nullptr : M;
|
||||
|
||||
// Otherwise create a new module.
|
||||
std::unique_ptr<Module> M2(new Module(Buf->getBufferIdentifier(), Context));
|
||||
if (LLParser(Buf, SM, Err, M2.get()).Run())
|
||||
if (LLParser(Buf->getBuffer(), SM, Err, M2.get()).Run())
|
||||
return nullptr;
|
||||
return M2.release();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user