comparison gcc/system.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Get common system includes and various definitions and declarations based 1 /* Get common system includes and various definitions and declarations based
2 on autoconf macros. 2 on autoconf macros.
3 Copyright (C) 1998-2017 Free Software Foundation, Inc. 3 Copyright (C) 1998-2018 Free Software Foundation, Inc.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify it under 7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free 8 the terms of the GNU General Public License as published by the Free
821 # define FALSE false 821 # define FALSE false
822 #endif /* !__cplusplus */ 822 #endif /* !__cplusplus */
823 823
824 /* Some compilers do not allow the use of unsigned char in bitfields. */ 824 /* Some compilers do not allow the use of unsigned char in bitfields. */
825 #define BOOL_BITFIELD unsigned int 825 #define BOOL_BITFIELD unsigned int
826
827 /* GCC older than 4.4 have broken C++ value initialization handling, see
828 PR11309, PR30111, PR33916, PR82939 and PR84405 for more details. */
829 #if GCC_VERSION > 0 && GCC_VERSION < 4004 && !defined(__clang__)
830 # define BROKEN_VALUE_INITIALIZATION
831 #endif
826 832
827 /* As the last action in this file, we poison the identifiers that 833 /* As the last action in this file, we poison the identifiers that
828 shouldn't be used. Note, luckily gcc-3.0's token-based integrated 834 shouldn't be used. Note, luckily gcc-3.0's token-based integrated
829 preprocessor won't trip on poisoned identifiers that arrive from 835 preprocessor won't trip on poisoned identifiers that arrive from
830 the expansion of macros. E.g. #define strrchr rindex, won't error 836 the expansion of macros. E.g. #define strrchr rindex, won't error
910 CAN_ELIMINATE TRAMPOLINE_TEMPLATE INITIALIZE_TRAMPOLINE \ 916 CAN_ELIMINATE TRAMPOLINE_TEMPLATE INITIALIZE_TRAMPOLINE \
911 TRAMPOLINE_ADJUST_ADDRESS STATIC_CHAIN STATIC_CHAIN_INCOMING \ 917 TRAMPOLINE_ADJUST_ADDRESS STATIC_CHAIN STATIC_CHAIN_INCOMING \
912 RETURN_POPS_ARGS UNITS_PER_SIMD_WORD OVERRIDE_OPTIONS \ 918 RETURN_POPS_ARGS UNITS_PER_SIMD_WORD OVERRIDE_OPTIONS \
913 OPTIMIZATION_OPTIONS CLASS_LIKELY_SPILLED_P \ 919 OPTIMIZATION_OPTIONS CLASS_LIKELY_SPILLED_P \
914 USING_SJLJ_EXCEPTIONS TARGET_UNWIND_INFO \ 920 USING_SJLJ_EXCEPTIONS TARGET_UNWIND_INFO \
915 LABEL_ALIGN_MAX_SKIP LOOP_ALIGN_MAX_SKIP \
916 LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP JUMP_ALIGN_MAX_SKIP \
917 CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ 921 CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \
918 HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \ 922 HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \
919 OUTPUT_ADDR_CONST_EXTRA SMALL_REGISTER_CLASSES ASM_OUTPUT_IDENT \ 923 OUTPUT_ADDR_CONST_EXTRA SMALL_REGISTER_CLASSES ASM_OUTPUT_IDENT \
920 ASM_BYTE_OP MEMBER_TYPE_FORCES_BLK LIBGCC2_HAS_SF_MODE \ 924 ASM_BYTE_OP MEMBER_TYPE_FORCES_BLK LIBGCC2_HAS_SF_MODE \
921 LIBGCC2_HAS_DF_MODE LIBGCC2_HAS_XF_MODE LIBGCC2_HAS_TF_MODE \ 925 LIBGCC2_HAS_DF_MODE LIBGCC2_HAS_XF_MODE LIBGCC2_HAS_TF_MODE \
1016 EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P \ 1020 EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P \
1017 CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \ 1021 CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \
1018 ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \ 1022 ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \
1019 LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE \ 1023 LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE \
1020 EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT \ 1024 EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT \
1021 JCR_SECTION_NAME TARGET_USE_JCR_SECTION 1025 JCR_SECTION_NAME TARGET_USE_JCR_SECTION SDB_DEBUGGING_INFO \
1026 SDB_DEBUG NO_IMPLICIT_EXTERN_C
1022 1027
1023 /* Hooks that are no longer used. */ 1028 /* Hooks that are no longer used. */
1024 #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ 1029 #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
1025 LANG_HOOKS_MARK_TREE LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES \ 1030 LANG_HOOKS_MARK_TREE LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES \
1026 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS \ 1031 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS \
1190 #define TEST_BIT(X, Y) (((X) >> (Y)) & 1) 1195 #define TEST_BIT(X, Y) (((X) >> (Y)) & 1)
1191 1196
1192 /* Get definitions of HOST_WIDE_INT. */ 1197 /* Get definitions of HOST_WIDE_INT. */
1193 #include "hwint.h" 1198 #include "hwint.h"
1194 1199
1195 /* qsort comparator consistency checking: except in release-checking compilers, 1200 /* GCC qsort API-compatible functions: except in release-checking compilers,
1196 redirect 4-argument qsort calls to qsort_chk; keep 1-argument invocations 1201 redirect 4-argument qsort calls to gcc_qsort; keep 1-argument invocations
1197 corresponding to vec::qsort (cmp): they use C qsort internally anyway. */ 1202 corresponding to vec::qsort (cmp): they use C qsort internally anyway. */
1198 #if CHECKING_P 1203 void qsort_chk (void *, size_t, size_t, int (*)(const void *, const void *));
1204 void gcc_qsort (void *, size_t, size_t, int (*)(const void *, const void *));
1205 void gcc_stablesort (void *, size_t, size_t,
1206 int (*)(const void *, const void *));
1199 #define PP_5th(a1, a2, a3, a4, a5, ...) a5 1207 #define PP_5th(a1, a2, a3, a4, a5, ...) a5
1200 #undef qsort 1208 #undef qsort
1201 #define qsort(...) PP_5th (__VA_ARGS__, qsort_chk, 3, 2, qsort, 0) (__VA_ARGS__) 1209 #define qsort(...) PP_5th (__VA_ARGS__, gcc_qsort, 3, 2, qsort, 0) (__VA_ARGS__)
1202 void qsort_chk (void *, size_t, size_t, int (*)(const void *, const void *));
1203 #endif
1204 1210
1205 #endif /* ! GCC_SYSTEM_H */ 1211 #endif /* ! GCC_SYSTEM_H */