https://github.com/necto updated https://github.com/llvm/llvm-project/pull/187646
>From 5bee041a8516371e97a44add9149299dabf30b4a Mon Sep 17 00:00:00 2001 From: Arseniy Zaostrovnykh <[email protected]> Date: Fri, 20 Mar 2026 08:18:00 +0100 Subject: [PATCH 1/2] [NFC][clang][analyzer] Complete enumeration in emitCrossTUDiagnostics Explicify handling of all index_error_code values in CrossTranslationUnitContext::emitCrossTUDiagnostics -- CPP-7804 --- clang/lib/CrossTU/CrossTranslationUnit.cpp | 26 +++++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp index b0b3bf5e2ae1e..64dffc3165dd0 100644 --- a/clang/lib/CrossTU/CrossTranslationUnit.cpp +++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -384,22 +384,36 @@ void CrossTranslationUnitContext::emitCrossTUDiagnostics(const IndexError &IE) { case index_error_code::missing_index_file: Context.getDiagnostics().Report(diag::err_ctu_error_opening) << IE.getFileName(); - break; + return; case index_error_code::invalid_index_format: Context.getDiagnostics().Report(diag::err_extdefmap_parsing) << IE.getFileName() << IE.getLineNum(); - break; + return; case index_error_code::multiple_definitions: Context.getDiagnostics().Report(diag::err_multiple_def_index) << IE.getLineNum(); - break; + return; case index_error_code::triple_mismatch: Context.getDiagnostics().Report(diag::warn_ctu_incompat_triple) << IE.getFileName() << IE.getTripleToName() << IE.getTripleFromName(); - break; - default: - break; + return; + case index_error_code::unspecified: + case index_error_code::missing_definition: + case index_error_code::failed_import: + case index_error_code::failed_to_get_external_ast: + case index_error_code::failed_to_generate_usr: + case index_error_code::lang_mismatch: + case index_error_code::lang_dialect_mismatch: + case index_error_code::load_threshold_reached: + case index_error_code::invocation_list_ambiguous: + case index_error_code::invocation_list_file_not_found: + case index_error_code::invocation_list_empty: + case index_error_code::invocation_list_wrong_format: + case index_error_code::invocation_list_lookup_unsuccessful: + // FIXME: Silently dropping these errors + return; } + llvm_unreachable("Unrecognized index_error_code."); } CrossTranslationUnitContext::ASTUnitStorage::ASTUnitStorage( >From 76bb49658160ebb641f0851c17dcf7d47f71c70f Mon Sep 17 00:00:00 2001 From: Arseniy Zaostrovnykh <[email protected]> Date: Fri, 20 Mar 2026 08:24:29 +0100 Subject: [PATCH 2/2] Add the index_error_code::success case for completeness --- clang/lib/CrossTU/CrossTranslationUnit.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp index 64dffc3165dd0..ef25ad454da2e 100644 --- a/clang/lib/CrossTU/CrossTranslationUnit.cpp +++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp @@ -397,6 +397,10 @@ void CrossTranslationUnitContext::emitCrossTUDiagnostics(const IndexError &IE) { Context.getDiagnostics().Report(diag::warn_ctu_incompat_triple) << IE.getFileName() << IE.getTripleToName() << IE.getTripleFromName(); return; + case index_error_code::success: + llvm_unreachable("There should not be a success error. This case should " + "have been handled by the caller."); + return; case index_error_code::unspecified: case index_error_code::missing_definition: case index_error_code::failed_import: _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
