r368348 - Fix up fd limit diagnosis code
Martin Storsjö via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 8 23:34:13 PDT 2019
This change broke compiling Qt.
A repro case looks like this:
mkdir -p fake-qtincl/5.13.1/QtCore/private
touch fake-qtincl/5.13.1/QtCore/private/qglobal_p.h
touch fake-qtincl/QtCore
echo "#include <QtCore/private/qglobal_p.h>" > qtincl.cpp
bin/clang++ -c qtincl.cpp -Ifake-qtincl -Ifake-qtincl/5.13.1
Previously this ignored the non-directory QtCore, but now clang bails out
on it. (And this is code that all other major compilers tolerate, afaik.)
// Martin
On Thu, 8 Aug 2019, Reid Kleckner via cfe-commits wrote:
> Author: rnk
> Date: Thu Aug 8 14:35:03 2019
> New Revision: 368348
>
> URL: http://llvm.org/viewvc/llvm-project?rev=368348&view=rev
> Log:
> Fix up fd limit diagnosis code
>
> 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.
>
> Modified:
> cfe/trunk/lib/Lex/HeaderSearch.cpp
>
> Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=368348&r1=368347&r2=368348&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Lex/HeaderSearch.cpp (original)
> +++ cfe/trunk/lib/Lex/HeaderSearch.cpp Thu Aug 8 14:35:03 2019
> @@ -316,8 +316,9 @@ const FileEntry *HeaderSearch::getFileAn
> // 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;
> }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list