Don't use std::errc
authorAlexey Bataev <a.bataev@hotmail.com>
Tue, 13 Aug 2019 19:32:36 +0000 (19:32 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Tue, 13 Aug 2019 19:32:36 +0000 (19:32 +0000)
commit4a0328c92a818f8cc61271c2ef54e11018090960
treee16b4d676c4cd8e2d8f26eb1a64739d0e20aa270
parenta5ef73cb4bd6d3636b01a25981e1f8a57c8b5d67
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

llvm-svn: 368739
clang/lib/Lex/HeaderSearch.cpp