зеркало из https://github.com/microsoft/clang.git
Add support for code completion on stdin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117414 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
92d835a86a
Коммит
90d9081cac
|
@ -37,9 +37,15 @@ public:
|
|||
|
||||
// If both tail splits were valid integers, return success.
|
||||
if (!ColSplit.second.getAsInteger(10, PSL.Column) &&
|
||||
!LineSplit.second.getAsInteger(10, PSL.Line))
|
||||
!LineSplit.second.getAsInteger(10, PSL.Line)) {
|
||||
PSL.FileName = LineSplit.first;
|
||||
|
||||
// On the command-line, stdin may be specified via "-". Inside the
|
||||
// compiler, stdin is called "<stdin>".
|
||||
if (PSL.FileName == "-")
|
||||
PSL.FileName = "<stdin>";
|
||||
}
|
||||
|
||||
return PSL;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -479,7 +479,10 @@ bool CompilerInstance::InitializeSourceManager(llvm::StringRef InputFile,
|
|||
Diags.Report(diag::err_fe_error_reading_stdin);
|
||||
return false;
|
||||
}
|
||||
SourceMgr.createMainFileIDForMemBuffer(SB);
|
||||
const FileEntry *File = FileMgr.getVirtualFile(SB->getBufferIdentifier(),
|
||||
SB->getBufferSize(), 0);
|
||||
SourceMgr.createMainFileID(File);
|
||||
SourceMgr.overrideFileContents(File, SB);
|
||||
}
|
||||
|
||||
assert(!SourceMgr.getMainFileID().isInvalid() &&
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
enum X { x };
|
||||
enum Y { y };
|
||||
|
||||
enum
|
||||
// RUN: %clang_cc1 -fsyntax-only -code-completion-at=-:4:6 < %s -o - | FileCheck -check-prefix=CC1 %s
|
||||
// CHECK-CC1: X
|
||||
// CHECK-CC1: Y
|
Загрузка…
Ссылка в новой задаче