File indexing completed on 2024-05-12 15:43:37

0001 /*
0002  *  Copyright (C) 2005, 2007 Apple Inc. All rights reserved.
0003  *
0004  *  This library is free software; you can redistribute it and/or
0005  *  modify it under the terms of the GNU Library General Public
0006  *  License as published by the Free Software Foundation; either
0007  *  version 2 of the License, or (at your option) any later version.
0008  *
0009  *  This library is distributed in the hope that it will be useful,
0010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  *  Library General Public License for more details.
0013  *
0014  *  You should have received a copy of the GNU Library General Public License
0015  *  along with this library; see the file COPYING.LIB.  If not, write to
0016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  *  Boston, MA 02110-1301, USA.
0018  *
0019  */
0020 
0021 #include <wtf/Platform.h>
0022 
0023 #ifndef ALWAYS_INLINE
0024 #if defined(WTF_COMPILER_GCC) && defined(NDEBUG) &&  __GNUC__ > 3
0025 #define ALWAYS_INLINE inline __attribute__ ((__always_inline__))
0026 #elif defined(WTF_COMPILER_MSVC) && defined(NDEBUG)
0027 #define ALWAYS_INLINE __forceinline
0028 #else
0029 #define ALWAYS_INLINE inline
0030 #endif
0031 #endif
0032 
0033 #ifndef ALWAYS_INLINE_INTO
0034 #if defined(WTF_COMPILER_GCC) && defined(NDEBUG) &&  ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || __GNUC__ > 4)
0035 #define ALWAYS_INLINE_INTO __attribute__ ((__flatten__))
0036 #else
0037 #define ALWAYS_INLINE_INTO
0038 #endif
0039 #endif
0040 
0041 #ifndef NEVER_INLINE
0042 #if defined(WTF_COMPILER_GCC) &&  __GNUC__ > 3
0043 #define NEVER_INLINE __attribute__ ((__noinline__))
0044 #else
0045 #define NEVER_INLINE
0046 #endif
0047 #endif