forked from OSchip/llvm-project
[clangd] Fix a crash when clang-tidy is disabled
llvm-svn: 362469
This commit is contained in:
parent
a050b25544
commit
65de43bc8b
|
@ -0,0 +1,39 @@
|
|||
# RUN: clangd -lit-test -clang-tidy=false < %s | FileCheck -strict-whitespace %s
|
||||
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{},"trace":"off"}}
|
||||
---
|
||||
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"test:///foo.c","languageId":"c","version":1,"text":"void main() {\n(void)sizeof(42);\n}"}}}
|
||||
# CHECK: "method": "textDocument/publishDiagnostics",
|
||||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "code": "-Wmain-return-type",
|
||||
# CHECK-NEXT: "message": "Return type of 'main' is not 'int' (fix available)",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 4,
|
||||
# CHECK-NEXT: "line": 0
|
||||
# CHECK-NEXT: },
|
||||
# CHECK-NEXT: "start": {
|
||||
# CHECK-NEXT: "character": 0,
|
||||
# CHECK-NEXT: "line": 0
|
||||
# CHECK-NEXT: }
|
||||
# CHECK-NEXT: },
|
||||
# CHECK-NEXT: "severity": 2,
|
||||
# CHECK-NEXT: "source": "clang"
|
||||
# CHECK-NEXT: }
|
||||
# CHECK-NEXT: ],
|
||||
# CHECK-NEXT: "uri": "file://{{.*}}/foo.c"
|
||||
# CHECK-NEXT: }
|
||||
---
|
||||
{"jsonrpc":"2.0","id":2,"method":"sync","params":null}
|
||||
---
|
||||
{"jsonrpc":"2.0","method":"textDocument/didClose","params":{"textDocument":{"uri":"test:///foo.c"}}}
|
||||
# CHECK: "method": "textDocument/publishDiagnostics",
|
||||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [],
|
||||
# CHECK-NEXT: "uri": "file://{{.*}}/foo.c"
|
||||
# CHECK-NEXT: }
|
||||
---
|
||||
{"jsonrpc":"2.0","id":5,"method":"shutdown"}
|
||||
---
|
||||
{"jsonrpc":"2.0","method":"exit"}
|
|
@ -512,14 +512,14 @@ int main(int argc, char *argv[]) {
|
|||
tidy::ClangTidyGlobalOptions(),
|
||||
/* Default */ tidy::ClangTidyOptions::getDefaults(),
|
||||
/* Override */ OverrideClangTidyOptions, FSProvider.getFileSystem());
|
||||
Opts.GetClangTidyOptions = [&](llvm::vfs::FileSystem &,
|
||||
llvm::StringRef File) {
|
||||
// This function must be thread-safe and tidy option providers are not.
|
||||
std::lock_guard<std::mutex> Lock(ClangTidyOptMu);
|
||||
// FIXME: use the FS provided to the function.
|
||||
return ClangTidyOptProvider->getOptions(File);
|
||||
};
|
||||
}
|
||||
Opts.GetClangTidyOptions = [&](llvm::vfs::FileSystem &,
|
||||
llvm::StringRef File) {
|
||||
// This function must be thread-safe and tidy option providers are not.
|
||||
std::lock_guard<std::mutex> Lock(ClangTidyOptMu);
|
||||
// FIXME: use the FS provided to the function.
|
||||
return ClangTidyOptProvider->getOptions(File);
|
||||
};
|
||||
Opts.SuggestMissingIncludes = SuggestMissingIncludes;
|
||||
llvm::Optional<OffsetEncoding> OffsetEncodingFromFlag;
|
||||
if (ForceOffsetEncoding != OffsetEncoding::UnsupportedEncoding)
|
||||
|
|
Loading…
Reference in New Issue