r368739 - Don't use std::errc
Alexey Bataev via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 13 18:41:27 PDT 2019
Sorry, forgot to change the description. Been busy switching to the newer version of the compiler.
Best regards,
Alexey Bataev
13 авг. 2019 г., в 21:32, Nico Weber <thakis at chromium.org<mailto:thakis at chromium.org>> написал(а):
From the review: This is for gcc 4.8 compat, not for the other reasons mentioned in the CL description.
On Tue, Aug 13, 2019 at 3:31 PM Alexey Bataev via cfe-commits <cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>> wrote:
Author: abataev
Date: Tue Aug 13 12:32:36 2019
New Revision: 368739
URL: http://llvm.org/viewvc/llvm-project?rev=368739&view=rev
Log:
Don't use std::errc
Summary:
As noted on Errc.h:
// * std::errc is just marked with is_error_condition_enum. This means that
// common patters like AnErrorCode == errc::no_such_file_or_directory take
// 4 virtual calls instead of two comparisons.
And on some libstdc++ those virtual functions conclude that
------------------------
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory);
return foo == std::errc::no_such_file_or_directory;
}
-------------------------
should exit with 0.
Reviewers: thakis, rnk, jfb
Reviewed By: thakis
Subscribers: lebedev.ri, dexonsmith, xbolva00, cfe-commits, caomhin
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66143
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=368739&r1=368738&r2=368739&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/HeaderSearch.cpp (original)
+++ cfe/trunk/lib/Lex/HeaderSearch.cpp Tue Aug 13 12:32:36 2019
@@ -30,6 +30,7 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Capacity.h"
+#include "llvm/Support/Errc.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
@@ -315,9 +316,9 @@ const FileEntry *HeaderSearch::getFileAn
// For rare, surprising errors (e.g. "out of file handles"), diag the EC
// message.
std::error_code EC = File.getError();
- if (EC != std::errc::no_such_file_or_directory &&
- EC != std::errc::invalid_argument && EC != std::errc::is_a_directory &&
- EC != std::errc::not_a_directory) {
+ if (EC != llvm::errc::no_such_file_or_directory &&
+ EC != llvm::errc::invalid_argument &&
+ EC != llvm::errc::is_a_directory && EC != llvm::errc::not_a_directory) {
Diags.Report(IncludeLoc, diag::err_cannot_open_file)
<< FileName << EC.message();
}
_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190814/215cd1e3/attachment-0001.html>
More information about the cfe-commits
mailing list