github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/config/compiler/xlcpp_zos.hpp (about) 1 // Copyright (c) 2017 Dynatrace 2 // 3 // Distributed under the Boost Software License, Version 1.0. 4 // See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt 6 7 // See http://www.boost.org for most recent version. 8 9 // Compiler setup for IBM z/OS XL C/C++ compiler. 10 11 // Oldest compiler version currently supported is 2.1 (V2R1) 12 #if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000 13 # error "Compiler not supported or configured - please reconfigure" 14 #endif 15 16 #if __COMPILER_VER__ > 0x42010000 17 # if defined(BOOST_ASSERT_CONFIG) 18 # error "Unknown compiler version - please run the configure tests and report the results" 19 # endif 20 #endif 21 22 #define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__) 23 #define BOOST_XLCPP_ZOS __COMPILER_VER__ 24 25 // ------------------------------------- 26 27 #include <features.h> // For __UU, __C99, __TR1, ... 28 29 #if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS) 30 # define BOOST_NO_CXX11_DELETED_FUNCTIONS 31 # define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS 32 # define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS 33 #endif 34 35 // ------------------------------------- 36 37 #if defined(__UU) || defined(__C99) || defined(__TR1) 38 # define BOOST_HAS_LOG1P 39 # define BOOST_HAS_EXPM1 40 #endif 41 42 #if defined(__C99) || defined(__TR1) 43 # define BOOST_HAS_STDINT_H 44 #else 45 # define BOOST_NO_FENV_H 46 #endif 47 48 // ------------------------------------- 49 50 #define BOOST_HAS_NRVO 51 52 #if !defined(__RTTI_ALL__) 53 # define BOOST_NO_RTTI 54 #endif 55 56 #if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS) 57 # define BOOST_NO_EXCEPTIONS 58 #endif 59 60 #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) 61 # define BOOST_HAS_LONG_LONG 62 #else 63 # define BOOST_NO_LONG_LONG 64 #endif 65 66 #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64) 67 # define BOOST_HAS_MS_INT64 68 #endif 69 70 #define BOOST_NO_SFINAE_EXPR 71 #define BOOST_NO_CXX11_SFINAE_EXPR 72 73 #if defined(__IBMCPP_VARIADIC_TEMPLATES) 74 # define BOOST_HAS_VARIADIC_TMPL 75 #else 76 # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 77 # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS 78 #endif 79 80 #if defined(__IBMCPP_STATIC_ASSERT) 81 # define BOOST_HAS_STATIC_ASSERT 82 #else 83 # define BOOST_NO_CXX11_STATIC_ASSERT 84 #endif 85 86 #if defined(__IBMCPP_RVALUE_REFERENCES) 87 # define BOOST_HAS_RVALUE_REFS 88 #else 89 # define BOOST_NO_CXX11_RVALUE_REFERENCES 90 #endif 91 92 #if !defined(__IBMCPP_SCOPED_ENUM) 93 # define BOOST_NO_CXX11_SCOPED_ENUMS 94 #endif 95 96 #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS 97 #define BOOST_NO_CXX11_TEMPLATE_ALIASES 98 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS 99 100 #if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS) 101 # define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 102 #endif 103 104 #if !defined(__IBMCPP_DECLTYPE) 105 # define BOOST_NO_CXX11_DECLTYPE 106 #else 107 # define BOOST_HAS_DECLTYPE 108 #endif 109 #define BOOST_NO_CXX11_DECLTYPE_N3276 110 111 #if !defined(__IBMCPP_INLINE_NAMESPACE) 112 # define BOOST_NO_CXX11_INLINE_NAMESPACES 113 #endif 114 115 #if !defined(__IBMCPP_AUTO_TYPEDEDUCTION) 116 # define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS 117 # define BOOST_NO_CXX11_AUTO_DECLARATIONS 118 # define BOOST_NO_CXX11_TRAILING_RESULT_TYPES 119 #endif 120 121 #if !defined(__IBM_CHAR32_T__) 122 # define BOOST_NO_CXX11_CHAR32_T 123 #endif 124 #if !defined(__IBM_CHAR16_T__) 125 # define BOOST_NO_CXX11_CHAR16_T 126 #endif 127 128 #if !defined(__IBMCPP_CONSTEXPR) 129 # define BOOST_NO_CXX11_CONSTEXPR 130 #endif 131 132 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX 133 #define BOOST_NO_CXX11_UNICODE_LITERALS 134 #define BOOST_NO_CXX11_RAW_LITERALS 135 #define BOOST_NO_CXX11_RANGE_BASED_FOR 136 #define BOOST_NO_CXX11_NULLPTR 137 #define BOOST_NO_CXX11_NOEXCEPT 138 #define BOOST_NO_CXX11_LAMBDAS 139 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS 140 #define BOOST_NO_CXX11_THREAD_LOCAL 141 #define BOOST_NO_CXX11_REF_QUALIFIERS 142 #define BOOST_NO_CXX11_FINAL 143 #define BOOST_NO_CXX11_OVERRIDE 144 #define BOOST_NO_CXX11_ALIGNAS 145 #define BOOST_NO_CXX11_ALIGNOF 146 #define BOOST_NO_CXX11_UNRESTRICTED_UNION 147 #define BOOST_NO_CXX14_VARIABLE_TEMPLATES 148 #define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION 149 #define BOOST_NO_CXX14_AGGREGATE_NSDMI 150 #define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES 151 #define BOOST_NO_CXX14_GENERIC_LAMBDAS 152 #define BOOST_NO_CXX14_DIGIT_SEPARATORS 153 #define BOOST_NO_CXX14_DECLTYPE_AUTO 154 #define BOOST_NO_CXX14_CONSTEXPR 155 #define BOOST_NO_CXX14_BINARY_LITERALS 156 #define BOOST_NO_CXX17_STRUCTURED_BINDINGS 157 #define BOOST_NO_CXX17_INLINE_VARIABLES 158 #define BOOST_NO_CXX17_FOLD_EXPRESSIONS 159 #define BOOST_NO_CXX17_IF_CONSTEXPR 160 161 // ------------------------------------- 162 163 #if defined(__IBM_ATTRIBUTES) 164 # define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__)) 165 # define BOOST_NOINLINE __attribute__ ((__noinline__)) 166 # define BOOST_MAY_ALIAS __attribute__((__may_alias__)) 167 // No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1). 168 #endif 169 170 extern "builtin" long __builtin_expect(long, long); 171 172 #define BOOST_LIKELY(x) __builtin_expect((x) && true, 1) 173 #define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)