[flang] [runtime] Fix build warnings if built with mingw

Check whether `F_OK` et al are defined before redefining them; mingw
headers do define them, so check before providing the windows fallback
defines.

Also check `_WIN32` instead of `WIN32`; this is how it's consistently
done in the rest of llvm. (The former is a compiler builtin define,
while the latter isn't, but it's commonly set by e.g. build systems.)

Differential Revision: https://reviews.llvm.org/D132481
This commit is contained in:
Martin Storsjö 2022-08-23 16:14:42 +03:00
parent c374789fba
commit 770685e24d
1 changed files with 3 additions and 1 deletions

View File

@ -426,10 +426,12 @@ void OpenFile::CloseFd(IoErrorHandler &handler) {
bool IsATerminal(int fd) { return ::isatty(fd); }
#ifdef WIN32
#if defined(_WIN32) && !defined(F_OK)
// Access flags are normally defined in unistd.h, which unavailable under
// Windows. Instead, define the flags as documented at
// https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/access-waccess
// On Mingw, io.h does define these same constants - so check whether they
// already are defined before defining these.
#define F_OK 00
#define W_OK 02
#define R_OK 04