Fix up fd limit diagnosis code
authorReid Kleckner <rnk@google.com>
Thu, 8 Aug 2019 21:35:03 +0000 (21:35 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 8 Aug 2019 21:35:03 +0000 (21:35 +0000)
Apparently Windows returns the "invalid argument" error code when the
path contains invalid characters such as '<'. The
test/Preprocessor/include-likely-typo.c test does this, so it was
failing after r368322.

Also, the diagnostic requires two arguments, so add the filename.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368348 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/HeaderSearch.cpp

index 7cadc1bde54feed362373cc73c003e699d8e0192..8b6a19e080fa009094e975879d1bc972aedb0612 100644 (file)
@@ -316,8 +316,9 @@ const FileEntry *HeaderSearch::getFileAndSuggestModule(
     // message.
     std::error_code EC = File.getError();
     if (EC != std::errc::no_such_file_or_directory &&
-        EC != std::errc::is_a_directory) {
-      Diags.Report(IncludeLoc, diag::err_cannot_open_file) << EC.message();
+        EC != std::errc::invalid_argument && EC != std::errc::is_a_directory) {
+      Diags.Report(IncludeLoc, diag::err_cannot_open_file)
+          << FileName << EC.message();
     }
     return nullptr;
   }