diff options
Diffstat (limited to 'gcc-4.8.1/libstdc++-v3/include/bits/c++config')
-rw-r--r-- | gcc-4.8.1/libstdc++-v3/include/bits/c++config | 459 |
1 files changed, 0 insertions, 459 deletions
diff --git a/gcc-4.8.1/libstdc++-v3/include/bits/c++config b/gcc-4.8.1/libstdc++-v3/include/bits/c++config deleted file mode 100644 index 04ae4cb7c..000000000 --- a/gcc-4.8.1/libstdc++-v3/include/bits/c++config +++ /dev/null @@ -1,459 +0,0 @@ -// Predefined symbols and macros -*- C++ -*- - -// Copyright (C) 1997-2013 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library 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. - -// This library 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. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file bits/c++config.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{iosfwd} - */ - -#ifndef _GLIBCXX_CXX_CONFIG_H -#define _GLIBCXX_CXX_CONFIG_H 1 - -// The current version of the C++ library in compressed ISO date format. -#define __GLIBCXX__ - -// Macros for various attributes. -// _GLIBCXX_PURE -// _GLIBCXX_CONST -// _GLIBCXX_NORETURN -// _GLIBCXX_NOTHROW -// _GLIBCXX_VISIBILITY -#ifndef _GLIBCXX_PURE -# define _GLIBCXX_PURE __attribute__ ((__pure__)) -#endif - -#ifndef _GLIBCXX_CONST -# define _GLIBCXX_CONST __attribute__ ((__const__)) -#endif - -#ifndef _GLIBCXX_NORETURN -# define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) -#endif - -// See below for C++ -#ifndef _GLIBCXX_NOTHROW -# ifndef __cplusplus -# define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) -# endif -#endif - -// Macros for visibility attributes. -// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY -// _GLIBCXX_VISIBILITY -#define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY - -#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY -# define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) -#else -// If this is not supplied by the OS-specific or CPU-specific -// headers included below, it will be defined to an empty default. -# define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V) -#endif - -// Macros for deprecated attributes. -// _GLIBCXX_USE_DEPRECATED -// _GLIBCXX_DEPRECATED -#ifndef _GLIBCXX_USE_DEPRECATED -# define _GLIBCXX_USE_DEPRECATED 1 -#endif - -#if defined(__DEPRECATED) && (__cplusplus >= 201103L) -# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__)) -#else -# define _GLIBCXX_DEPRECATED -#endif - -#if __cplusplus - -// Macro for constexpr, to support in mixed 03/0x mode. -#ifndef _GLIBCXX_CONSTEXPR -# if __cplusplus >= 201103L -# define _GLIBCXX_CONSTEXPR constexpr -# define _GLIBCXX_USE_CONSTEXPR constexpr -# else -# define _GLIBCXX_CONSTEXPR -# define _GLIBCXX_USE_CONSTEXPR const -# endif -#endif - -// Macro for noexcept, to support in mixed 03/0x mode. -#ifndef _GLIBCXX_NOEXCEPT -# if __cplusplus >= 201103L -# define _GLIBCXX_NOEXCEPT noexcept -# define _GLIBCXX_USE_NOEXCEPT noexcept -# define _GLIBCXX_THROW(_EXC) -# else -# define _GLIBCXX_NOEXCEPT -# define _GLIBCXX_USE_NOEXCEPT throw() -# define _GLIBCXX_THROW(_EXC) throw(_EXC) -# endif -#endif - -#ifndef _GLIBCXX_NOTHROW -# define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT -#endif - -#ifndef _GLIBCXX_THROW_OR_ABORT -# if __EXCEPTIONS -# define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) -# else -# define _GLIBCXX_THROW_OR_ABORT(_EXC) (__builtin_abort()) -# endif -#endif - -// Macro for extern template, ie controling template linkage via use -// of extern keyword on template declaration. As documented in the g++ -// manual, it inhibits all implicit instantiations and is used -// throughout the library to avoid multiple weak definitions for -// required types that are already explicitly instantiated in the -// library binary. This substantially reduces the binary size of -// resulting executables. -// Special case: _GLIBCXX_EXTERN_TEMPLATE == -1 disallows extern -// templates only in basic_string, thus activating its debug-mode -// checks even at -O0. -#define _GLIBCXX_EXTERN_TEMPLATE - -/* - Outline of libstdc++ namespaces. - - namespace std - { - namespace __debug { } - namespace __parallel { } - namespace __profile { } - namespace __cxx1998 { } - - namespace __detail { } - - namespace rel_ops { } - - namespace tr1 - { - namespace placeholders { } - namespace regex_constants { } - namespace __detail { } - } - - namespace tr2 { } - - namespace decimal { } - - namespace chrono { } - namespace placeholders { } - namespace regex_constants { } - namespace this_thread { } - } - - namespace abi { } - - namespace __gnu_cxx - { - namespace __detail { } - } - - For full details see: - http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html -*/ -namespace std -{ - typedef __SIZE_TYPE__ size_t; - typedef __PTRDIFF_TYPE__ ptrdiff_t; - -#if __cplusplus >= 201103L - typedef decltype(nullptr) nullptr_t; -#endif -} - - -// Defined if inline namespaces are used for versioning. -#define _GLIBCXX_INLINE_VERSION - -// Inline namespace for symbol versioning. -#if _GLIBCXX_INLINE_VERSION - -namespace std -{ - inline namespace __7 { } - - namespace rel_ops { inline namespace __7 { } } - - namespace tr1 - { - inline namespace __7 { } - namespace placeholders { inline namespace __7 { } } - namespace regex_constants { inline namespace __7 { } } - namespace __detail { inline namespace __7 { } } - } - - namespace tr2 - { inline namespace __7 { } } - - namespace decimal { inline namespace __7 { } } - - namespace chrono { inline namespace __7 { } } - namespace placeholders { inline namespace __7 { } } - namespace regex_constants { inline namespace __7 { } } - namespace this_thread { inline namespace __7 { } } - - namespace __detail { inline namespace __7 { } } -} - -namespace __gnu_cxx -{ - inline namespace __7 { } - namespace __detail { inline namespace __7 { } } -} -# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __7 { -# define _GLIBCXX_END_NAMESPACE_VERSION } -#else -# define _GLIBCXX_BEGIN_NAMESPACE_VERSION -# define _GLIBCXX_END_NAMESPACE_VERSION -#endif - - -// Inline namespaces for special modes: debug, parallel, profile. -#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) \ - || defined(_GLIBCXX_PROFILE) -namespace std -{ - // Non-inline namespace for components replaced by alternates in active mode. - namespace __cxx1998 - { -#if _GLIBCXX_INLINE_VERSION - inline namespace __7 { } -#endif - } - - // Inline namespace for debug mode. -# ifdef _GLIBCXX_DEBUG - inline namespace __debug { } -# endif - - // Inline namespaces for parallel mode. -# ifdef _GLIBCXX_PARALLEL - inline namespace __parallel { } -# endif - - // Inline namespaces for profile mode -# ifdef _GLIBCXX_PROFILE - inline namespace __profile { } -# endif -} - -// Check for invalid usage and unsupported mixed-mode use. -# if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL) -# error illegal use of multiple inlined namespaces -# endif -# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_DEBUG) -# error illegal use of multiple inlined namespaces -# endif -# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_PARALLEL) -# error illegal use of multiple inlined namespaces -# endif - -// Check for invalid use due to lack for weak symbols. -# if __NO_INLINE__ && !__GXX_WEAK__ -# warning currently using inlined namespace mode which may fail \ - without inlining due to lack of weak symbols -# endif -#endif - -// Macros for namespace scope. Either namespace std:: or the name -// of some nested namespace within it corresponding to the active mode. -// _GLIBCXX_STD_A -// _GLIBCXX_STD_C -// -// Macros for opening/closing conditional namespaces. -// _GLIBCXX_BEGIN_NAMESPACE_ALGO -// _GLIBCXX_END_NAMESPACE_ALGO -// _GLIBCXX_BEGIN_NAMESPACE_CONTAINER -// _GLIBCXX_END_NAMESPACE_CONTAINER -#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PROFILE) -# define _GLIBCXX_STD_C __cxx1998 -# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \ - namespace _GLIBCXX_STD_C { _GLIBCXX_BEGIN_NAMESPACE_VERSION -# define _GLIBCXX_END_NAMESPACE_CONTAINER \ - _GLIBCXX_END_NAMESPACE_VERSION } -# undef _GLIBCXX_EXTERN_TEMPLATE -# define _GLIBCXX_EXTERN_TEMPLATE -1 -#endif - -#ifdef _GLIBCXX_PARALLEL -# define _GLIBCXX_STD_A __cxx1998 -# define _GLIBCXX_BEGIN_NAMESPACE_ALGO \ - namespace _GLIBCXX_STD_A { _GLIBCXX_BEGIN_NAMESPACE_VERSION -# define _GLIBCXX_END_NAMESPACE_ALGO \ - _GLIBCXX_END_NAMESPACE_VERSION } -#endif - -#ifndef _GLIBCXX_STD_A -# define _GLIBCXX_STD_A std -#endif - -#ifndef _GLIBCXX_STD_C -# define _GLIBCXX_STD_C std -#endif - -#ifndef _GLIBCXX_BEGIN_NAMESPACE_ALGO -# define _GLIBCXX_BEGIN_NAMESPACE_ALGO -#endif - -#ifndef _GLIBCXX_END_NAMESPACE_ALGO -# define _GLIBCXX_END_NAMESPACE_ALGO -#endif - -#ifndef _GLIBCXX_BEGIN_NAMESPACE_CONTAINER -# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER -#endif - -#ifndef _GLIBCXX_END_NAMESPACE_CONTAINER -# define _GLIBCXX_END_NAMESPACE_CONTAINER -#endif - -// GLIBCXX_ABI Deprecated -// Define if compatibility should be provided for -mlong-double-64. -#undef _GLIBCXX_LONG_DOUBLE_COMPAT - -// Inline namespace for long double 128 mode. -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ -namespace std -{ - inline namespace __gnu_cxx_ldbl128 { } -} -# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ldbl128:: -# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ldbl128 { -# define _GLIBCXX_END_NAMESPACE_LDBL } -#else -# define _GLIBCXX_NAMESPACE_LDBL -# define _GLIBCXX_BEGIN_NAMESPACE_LDBL -# define _GLIBCXX_END_NAMESPACE_LDBL -#endif - -// Assert. -#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL) -# define __glibcxx_assert(_Condition) -#else -namespace std -{ - // Avoid the use of assert, because we're trying to keep the <cassert> - // include out of the mix. - inline void - __replacement_assert(const char* __file, int __line, - const char* __function, const char* __condition) - { - __builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line, - __function, __condition); - __builtin_abort(); - } -} -#define __glibcxx_assert(_Condition) \ - do \ - { \ - if (! (_Condition)) \ - std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \ - #_Condition); \ - } while (false) -#endif - -// Macros for race detectors. -// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) and -// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) should be used to explain -// atomic (lock-free) synchronization to race detectors: -// the race detector will infer a happens-before arc from the former to the -// latter when they share the same argument pointer. -// -// The most frequent use case for these macros (and the only case in the -// current implementation of the library) is atomic reference counting: -// void _M_remove_reference() -// { -// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount); -// if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0) -// { -// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount); -// _M_destroy(__a); -// } -// } -// The annotations in this example tell the race detector that all memory -// accesses occurred when the refcount was positive do not race with -// memory accesses which occurred after the refcount became zero. -#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE -# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) -#endif -#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER -# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) -#endif - -// Macros for C linkage: define extern "C" linkage only when using C++. -# define _GLIBCXX_BEGIN_EXTERN_C extern "C" { -# define _GLIBCXX_END_EXTERN_C } - -#else // !__cplusplus -# define _GLIBCXX_BEGIN_EXTERN_C -# define _GLIBCXX_END_EXTERN_C -#endif - - -// First includes. - -// Pick up any OS-specific definitions. -#include <bits/os_defines.h> - -// Pick up any CPU-specific definitions. -#include <bits/cpu_defines.h> - -// If platform uses neither visibility nor psuedo-visibility, -// specify empty default for namespace annotation macros. -#ifndef _GLIBCXX_PSEUDO_VISIBILITY -# define _GLIBCXX_PSEUDO_VISIBILITY(V) -#endif - -// Certain function definitions that are meant to be overridable from -// user code are decorated with this macro. For some targets, this -// macro causes these definitions to be weak. -#ifndef _GLIBCXX_WEAK_DEFINITION -# define _GLIBCXX_WEAK_DEFINITION -#endif - - -// The remainder of the prewritten config is automatic; all the -// user hooks are listed above. - -// Create a boolean flag to be used to determine if --fast-math is set. -#ifdef __FAST_MATH__ -# define _GLIBCXX_FAST_MATH 1 -#else -# define _GLIBCXX_FAST_MATH 0 -#endif - -// This marks string literals in header files to be extracted for eventual -// translation. It is primarily used for messages in thrown exceptions; see -// src/functexcept.cc. We use __N because the more traditional _N is used -// for something else under certain OSes (see BADNAMES). -#define __N(msgid) (msgid) - -// For example, <windows.h> is known to #define min and max as macros... -#undef min -#undef max - -// End of prewritten config; the settings discovered at configure time follow. |