| /* d-system.h -- DMD frontend inclusion of gcc header files. |
| * Copyright (C) 2018-2021 Free Software Foundation, Inc. |
| * |
| * GCC is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 3, or (at your option) |
| * any later version. |
| * |
| * GCC is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with GCC; see the file COPYING3. If not see |
| * <http://www.gnu.org/licenses/>. |
| */ |
| |
| #ifndef GCC_D_SYSTEM_H |
| #define GCC_D_SYSTEM_H |
| |
| #ifdef GENERATOR_FILE |
| #include "bconfig.h" |
| #else |
| #include "config.h" |
| #endif |
| #include "system.h" |
| |
| /* Used by the dmd front-end to determine if we have POSIX-style IO. */ |
| #define POSIX (__linux__ || __GLIBC__ || __gnu_hurd__ || __APPLE__ \ |
| || __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ \ |
| || __sun || __unix__) |
| |
| /* Forward assert invariants to gcc_assert. */ |
| #undef assert |
| #define assert(EXPR) gcc_assert(EXPR) |
| |
| /* Use libiberty's lrealpath to avoid portability problems. */ |
| #undef realpath |
| #define realpath(a, b) lrealpath((a)) |
| |
| /* Forward ctype.h macros used by the dmd front-end to safe-ctype.h. */ |
| #undef isalpha |
| #define isalpha(c) ISALPHA(c) |
| #undef isalnum |
| #define isalnum(c) ISALNUM(c) |
| #undef isdigit |
| #define isdigit(c) ISDIGIT(c) |
| #undef islower |
| #define islower(c) ISLOWER(c) |
| #undef isprint |
| #define isprint(c) ISPRINT(c) |
| #undef isspace |
| #define isspace(c) ISSPACE(c) |
| #undef isupper |
| #define isupper(c) ISUPPER(c) |
| #undef isxdigit |
| #define isxdigit(c) ISXDIGIT(c) |
| #undef tolower |
| #define tolower(c) TOLOWER(c) |
| |
| /* Forward _mkdir on MinGW to mkdir in system.h. */ |
| #ifdef _WIN32 |
| #undef _mkdir |
| #define _mkdir(p) mkdir(p, 0) |
| #endif |
| |
| /* Define any missing _MAX and _MIN macros. */ |
| #ifndef INT32_MAX |
| # define INT32_MAX INTTYPE_MAXIMUM (int32_t) |
| #endif |
| #ifndef INT32_MIN |
| # define INT32_MIN INTTYPE_MINIMUM (int32_t) |
| #endif |
| #ifndef INT64_MIN |
| # define INT64_MIN INTTYPE_MINIMUM (int64_t) |
| #endif |
| #ifndef UINT32_MAX |
| # define UINT32_MAX INTTYPE_MAXIMUM (uint32_t) |
| #endif |
| #ifndef UINT64_MAX |
| # define UINT64_MAX INTTYPE_MAXIMUM (uint64_t) |
| #endif |
| |
| #endif /* GCC_D_SYSTEM_H */ |