rsmith added inline comments.

================
Comment at: lib/Frontend/CompilerInstance.cpp:1483
@@ +1482,3 @@
+                                   HSOpts.ModulesUsePrebuiltModules ?
+                                   ASTReader::ARR_ConfigurationMismatch :
+                                   ARRFlags)) {
----------------
This looks wrong: you're asking `ReadAST` to not diagnose a configuration 
mismatch, and you also don't diagnose it yourself.

================
Comment at: lib/Frontend/CompilerInstance.cpp:1502-1510
@@ -1477,1 +1501,11 @@
     case ASTReader::Missing: {
+      if (HSOpts.ModulesUsePrebuiltModules) {
+        // We can't rebuild the module without a module map. Throw diagnostics
+        // here if using prebuilt modules.
+        getDiagnostics().Report(ModuleNameLoc, diag::err_module_not_found)
+        << ModuleName
+        << SourceRange(ImportLoc, ModuleNameLoc);
+        ModuleBuildFailed = true;
+        return ModuleLoadResult();
+      }
+
----------------
You requested that `ReadAST` produces diagnostics for the `OutOfDate` and 
`Missing` cases when using prebuilt modules, so this diagnostic is redundant.

================
Comment at: lib/Serialization/ASTReader.cpp:495-498
@@ -494,1 +494,6 @@
 
+static bool isPrebuiltModule(Preprocessor &PP, ModuleKind MK) {
+  return (MK == MK_ExplicitModule || MK == MK_ImplicitModule) &&
+      PP.getHeaderSearchInfo().getHeaderSearchOpts().ModulesUsePrebuiltModules;
+}
+
----------------
This seems unnecessarily complicated. Perhaps you could make 
`CompilerInstance::loadModule` treat all prebuilt modules as 
`MK_ExplicitModule`, or add a third `ModuleKind` for them?


https://reviews.llvm.org/D23125



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to