Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Thu, 12 Nov 2020 17:53:49 +0000 (12:53 -0500)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 13 Nov 2020 21:23:04 +0000 (16:23 -0500)
Clean up the logic for `err_fe_{pch,module,ast}_file_modified` to use a
`select` like other ASTReader diagnostics. There should be no
functionality change here, just a cleanup.

Differential Revision: https://reviews.llvm.org/D91367

clang/include/clang/Basic/DiagnosticSerializationKinds.td
clang/lib/Serialization/ASTReader.cpp

index 2720e85..ce48833 100644 (file)
@@ -17,17 +17,10 @@ def err_fe_pch_malformed : Error<
     "malformed or corrupted AST file: '%0'">, DefaultFatal;
 def err_fe_pch_malformed_block : Error<
     "malformed block record in PCH file: '%0'">, DefaultFatal;
-def err_fe_pch_file_modified : Error<
-    "file '%0' has been modified since the precompiled header '%1' was built"
-    ": %select{size|mtime|content}2 changed">,
-    DefaultFatal;
-def err_fe_module_file_modified : Error<
-    "file '%0' has been modified since the module file '%1' was built"
-    ": %select{size|mtime|content}2 changed">,
-    DefaultFatal;
 def err_fe_ast_file_modified : Error<
-    "file '%0' has been modified since the AST file '%1' was built"
-    ": %select{size|mtime|content}2 changed">,
+    "file '%0' has been modified since the "
+    "%select{precompiled header|module file|AST file}1 '%2' was built"
+    ": %select{size|mtime|content}3 changed">,
     DefaultFatal;
 def err_fe_pch_file_overridden : Error<
     "file '%0' from the precompiled header has been overridden">;
index 31831b7..6004543 100644 (file)
@@ -2397,17 +2397,9 @@ InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
 
       // The top-level PCH is stale.
       StringRef TopLevelPCHName(ImportStack.back()->FileName);
-      unsigned DiagnosticKind =
-          moduleKindForDiagnostic(ImportStack.back()->Kind);
-      if (DiagnosticKind == 0)
-        Diag(diag::err_fe_pch_file_modified)
-            << Filename << TopLevelPCHName << FileChange;
-      else if (DiagnosticKind == 1)
-        Diag(diag::err_fe_module_file_modified)
-            << Filename << TopLevelPCHName << FileChange;
-      else
-        Diag(diag::err_fe_ast_file_modified)
-            << Filename << TopLevelPCHName << FileChange;
+      Diag(diag::err_fe_ast_file_modified)
+          << Filename << moduleKindForDiagnostic(ImportStack.back()->Kind)
+          << TopLevelPCHName << FileChange;
 
       // Print the import stack.
       if (ImportStack.size() > 1) {