1
1
openmpi/opal/include/opal_stdint.h
Nathan Hjelm 4d92c9989e more c99 updates
This commit does two things. It removes checks for C99 required
headers (stdlib.h, string.h, signal.h, etc). Additionally it removes
definitions for required C99 types (intptr_t, int64_t, int32_t, etc).

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-06-25 10:14:13 -06:00

126 строки
2.9 KiB
C

/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
* This file includes the C99 stdint.h file if available, and otherwise
* defines fixed-width types according to the SIZEOF information
* gathered by configure.
*/
#ifndef OPAL_STDINT_H
#define OPAL_STDINT_H 1
/*
* Include what we can and define what is missing.
*/
#include <limits.h>
#include <stdint.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
/* 128-bit */
#ifdef HAVE_INT128_T
typedef int128_t opal_int128_t;
typedef uint128_t opal_uint128_t;
#define HAVE_OPAL_INT128_T 1
#elif defined(HAVE___INT128)
/* suppress warning about __int128 type */
#pragma GCC diagnostic push
/* Clang won't quietly accept "-pedantic", but GCC versions older than ~4.8
* won't quietly accept "-Wpedanic". The whole "#pragma GCC diagnostic ..."
* facility only was added to GCC as of version 4.6. */
#if defined(__clang__)
#pragma GCC diagnostic ignored "-Wpedantic"
#else
#pragma GCC diagnostic ignored "-pedantic"
#endif
typedef __int128 opal_int128_t;
typedef unsigned __int128 opal_uint128_t;
#pragma GCC diagnostic pop
#define HAVE_OPAL_INT128_T 1
#else
#define HAVE_OPAL_INT128_T 0
#endif
/* Pointers */
#if SIZEOF_VOID_P == SIZEOF_INT
#ifndef HAVE_INTPTR_T
typedef signed int intptr_t;
#endif
#ifndef HAVE_UINTPTR_T
typedef unsigned int uintptr_t;
#endif
#elif SIZEOF_VOID_P == SIZEOF_LONG
#ifndef HAVE_INTPTR_T
typedef signed long intptr_t;
#endif
#ifndef HAVE_UINTPTR_T
typedef unsigned long uintptr_t;
#endif
#elif HAVE_LONG_LONG && SIZEOF_VOID_P == SIZEOF_LONG_LONG
#ifndef HAVE_INTPTR_T
typedef signed long long intptr_t;
#endif
#ifndef HAVE_UINTPTR_T
typedef unsigned long long uintptr_t;
#endif
#else
#error Failed to define pointer-sized integer types
#endif
/* inttypes.h printf specifiers */
# include <inttypes.h>
#ifndef PRIsize_t
# if defined(ACCEPT_C99)
# define PRIsize_t "zu"
# elif SIZEOF_SIZE_T == SIZEOF_LONG
# define PRIsize_t "lu"
# elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
# define PRIsize_t "llu"
# else
# define PRIsize_t "u"
# endif
#endif
#endif /* OPAL_STDINT_H */