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

Reply via email to