diff --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp b/clang-tools-extra/clang-tidy/ClangTidy.cpp --- a/clang-tools-extra/clang-tidy/ClangTidy.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp @@ -498,6 +498,11 @@ std::make_unique(ClangTidyGlobalOptions(), Options), AllowEnablingAnalyzerAlphaCheckers); + ClangTidyDiagnosticConsumer DiagConsumer(Context); + DiagnosticsEngine DE(llvm::makeIntrusiveRefCnt(), + llvm::makeIntrusiveRefCnt(), + &DiagConsumer, /*ShouldOwnClient=*/false); + Context.setDiagnosticsEngine(&DE); ClangTidyASTConsumerFactory Factory(Context); return Factory.getCheckOptions(); } diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -101,6 +101,8 @@ - Support specifying `Checks` as a YAML list in the `.clang-tidy` configuration file. +- Fix a potential crash when using the `--dump-config` option. + New checks ^^^^^^^^^^ diff --git a/clang-tools-extra/test/clang-tidy/infrastructure/dump-config-invalid.cpp b/clang-tools-extra/test/clang-tidy/infrastructure/dump-config-invalid.cpp new file mode 100644 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/infrastructure/dump-config-invalid.cpp @@ -0,0 +1,6 @@ +// RUN: clang-tidy --checks="-*,modernize-make-shared" \ +// RUN: --config="CheckOptions: [{ \ +// RUN: key: modernize-make-shared.IncludeStyle, value: '0' }]" \ +// RUN: --dump-config -- | FileCheck %s + +// CHECK: modernize-make-shared.IncludeStyle: llvm