86 lines
2.3 KiB
C
86 lines
2.3 KiB
C
/* 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 */
|