[clang-tools-extra] [clang-tidy] Return error code on config parse error (PR #136167)
Galen Elias via cfe-commits
cfe-commits at lists.llvm.org
Tue May 27 09:18:55 PDT 2025
================
@@ -265,8 +265,16 @@ const ClangTidyOptions &ClangTidyContext::getOptions() const {
ClangTidyOptions ClangTidyContext::getOptionsForFile(StringRef File) const {
// Merge options on top of getDefaults() as a safeguard against options with
// unset values.
- return ClangTidyOptions::getDefaults().merge(
- OptionsProvider->getOptions(File), 0);
+ ClangTidyOptions defaultOptions = ClangTidyOptions::getDefaults();
+ llvm::ErrorOr<ClangTidyOptions> fileOptions =
+ OptionsProvider->getOptions(File);
+
+ // If there was an error parsing the options, just use the default options.
----------------
galenelias wrote:
I agree, but it seemed quite difficult to propagate an error from this function and would drastically increase the size and invasiveness of this change, as every call of this function would need to propagate the error, and so on and so forth recursively until dozens+ of functions have been changed.
Given that in the primary clang-tidy usage scenario that these configs have already been pre-validated, and that this fallback behavior is basically equivalent to the previous behavior of silently continuing on with the default config, this seemed like a reasonable compromise.
I can pursue propagating the error, but when I initially investigated it, it seems quite complicated given the current places this method is called and how prepared the callers were for propagating errors.
https://github.com/llvm/llvm-project/pull/136167
More information about the cfe-commits
mailing list