mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 07:31:28 +00:00
AIX system headers need stdint.h and inttypes.h to be re-enterable
Summary: AIX system headers need stdint.h and inttypes.h to be re-enterable when macro _STD_TYPES_T is defined so that limit macro definitions such as UINT32_MAX can be found. This patch attempts to allow that on AIX. Reviewers: hubert.reinterpretcast, jasonliu, mclow.lists, EricWF Reviewed by: hubert.reinterpretcast, mclow.lists Subscribers: jfb, jsji, christof, cfe-commits, libcxx-commits, llvm-commits Tags: #LLVM, #clang, #libc++ Differential Revision: https://reviews.llvm.org/D59253 llvm-svn: 363939
This commit is contained in:
parent
345473c791
commit
ab4bcd844a
@ -7,7 +7,12 @@
|
||||
\*===----------------------------------------------------------------------===*/
|
||||
|
||||
#ifndef __CLANG_INTTYPES_H
|
||||
// AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T
|
||||
// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
|
||||
// case the header guard macro is defined.
|
||||
#if !defined(_AIX) || !defined(_STD_TYPES_T)
|
||||
#define __CLANG_INTTYPES_H
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1800
|
||||
#error MSVC does not have inttypes.h prior to Visual Studio 2013
|
||||
|
@ -7,7 +7,12 @@
|
||||
\*===----------------------------------------------------------------------===*/
|
||||
|
||||
#ifndef __CLANG_STDINT_H
|
||||
// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T
|
||||
// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
|
||||
// case the header guard macro is defined.
|
||||
#if !defined(_AIX) || !defined(_STD_TYPES_T) || !defined(__STDC_HOSTED__)
|
||||
#define __CLANG_STDINT_H
|
||||
#endif
|
||||
|
||||
/* If we're hosted, fall back to the system's stdint.h, which might have
|
||||
* additional definitions.
|
||||
|
@ -8,7 +8,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP_INTTYPES_H
|
||||
// AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T
|
||||
// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
|
||||
// case the header guard macro is defined.
|
||||
#if !defined(_AIX) || !defined(_STD_TYPES_T)
|
||||
#define _LIBCPP_INTTYPES_H
|
||||
#endif // _STD_TYPES_T
|
||||
|
||||
/*
|
||||
inttypes.h synopsis
|
||||
|
@ -8,7 +8,12 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP_STDINT_H
|
||||
// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T
|
||||
// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
|
||||
// case the header guard macro is defined.
|
||||
#if !defined(_AIX) || !defined(_STD_TYPES_T)
|
||||
#define _LIBCPP_STDINT_H
|
||||
#endif // _STD_TYPES_T
|
||||
|
||||
/*
|
||||
stdint.h synopsis
|
||||
|
268
libcxx/test/std/depr/depr.c.headers/stdint_h.sh.cpp
Normal file
268
libcxx/test/std/depr/depr.c.headers/stdint_h.sh.cpp
Normal file
@ -0,0 +1,268 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// AIX system headers need stdint.h to be re-enterable when macro _STD_TYPES_T
|
||||
// is defined. This test case tests that after including sys/types.h which
|
||||
// defines macro _STD_TYPES_T, includes stdint.h, and then undefines
|
||||
// _STD_TYPES_T, stdint.h can be entered to get to macros like UINT32_MAX.
|
||||
//
|
||||
// REQUIRES: aix
|
||||
// RUN: %compile -c
|
||||
// RUN: %compile -c -D_XOPEN_SOURCE=700
|
||||
|
||||
// test <stdint.h>
|
||||
//
|
||||
// Test that limits macros are available when <stdint.h> is included with
|
||||
// or without macro _XOPEN_SOURCE=700.
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef INT8_MIN
|
||||
#error INT8_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT16_MIN
|
||||
#error INT16_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT32_MIN
|
||||
#error INT32_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT64_MIN
|
||||
#error INT64_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT8_MAX
|
||||
#error INT8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT16_MAX
|
||||
#error INT16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT32_MAX
|
||||
#error INT32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT64_MAX
|
||||
#error INT64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT8_MAX
|
||||
#error UINT8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT16_MAX
|
||||
#error UINT16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT32_MAX
|
||||
#error UINT32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT64_MAX
|
||||
#error UINT64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST8_MIN
|
||||
#error INT_LEAST8_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST16_MIN
|
||||
#error INT_LEAST16_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST32_MIN
|
||||
#error INT_LEAST32_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST64_MIN
|
||||
#error INT_LEAST64_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST8_MAX
|
||||
#error INT_LEAST8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST16_MAX
|
||||
#error INT_LEAST16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST32_MAX
|
||||
#error INT_LEAST32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_LEAST64_MAX
|
||||
#error INT_LEAST64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_LEAST8_MAX
|
||||
#error UINT_LEAST8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_LEAST16_MAX
|
||||
#error UINT_LEAST16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_LEAST32_MAX
|
||||
#error UINT_LEAST32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_LEAST64_MAX
|
||||
#error UINT_LEAST64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST8_MIN
|
||||
#error INT_FAST8_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST16_MIN
|
||||
#error INT_FAST16_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST32_MIN
|
||||
#error INT_FAST32_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST64_MIN
|
||||
#error INT_FAST64_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST8_MAX
|
||||
#error INT_FAST8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST16_MAX
|
||||
#error INT_FAST16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST32_MAX
|
||||
#error INT_FAST32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT_FAST64_MAX
|
||||
#error INT_FAST64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_FAST8_MAX
|
||||
#error UINT_FAST8_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_FAST16_MAX
|
||||
#error UINT_FAST16_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_FAST32_MAX
|
||||
#error UINT_FAST32_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT_FAST64_MAX
|
||||
#error UINT_FAST64_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTPTR_MIN
|
||||
#error INTPTR_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTPTR_MAX
|
||||
#error INTPTR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINTPTR_MAX
|
||||
#error UINTPTR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTMAX_MIN
|
||||
#error INTMAX_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTMAX_MAX
|
||||
#error INTMAX_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINTMAX_MAX
|
||||
#error UINTMAX_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef PTRDIFF_MIN
|
||||
#error PTRDIFF_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef PTRDIFF_MAX
|
||||
#error PTRDIFF_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIG_ATOMIC_MIN
|
||||
#error SIG_ATOMIC_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIG_ATOMIC_MAX
|
||||
#error SIG_ATOMIC_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
#error SIZE_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef WCHAR_MIN
|
||||
#error WCHAR_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef WCHAR_MAX
|
||||
#error WCHAR_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef WINT_MIN
|
||||
#error WINT_MIN not defined
|
||||
#endif
|
||||
|
||||
#ifndef WINT_MAX
|
||||
#error WINT_MAX not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT8_C
|
||||
#error INT8_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT16_C
|
||||
#error INT16_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT32_C
|
||||
#error INT32_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INT64_C
|
||||
#error INT64_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT8_C
|
||||
#error UINT8_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT16_C
|
||||
#error UINT16_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT32_C
|
||||
#error UINT32_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINT64_C
|
||||
#error UINT64_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef INTMAX_C
|
||||
#error INTMAX_C not defined
|
||||
#endif
|
||||
|
||||
#ifndef UINTMAX_C
|
||||
#error UINTMAX_C not defined
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user