WTF
AlwaysInline.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Library General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this library; see the file COPYING.LIB. If not, write to 00016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 * Boston, MA 02110-1301, USA. 00018 * 00019 */ 00020 00021 #include <wtf/Platform.h> 00022 00023 00024 #ifndef ALWAYS_INLINE 00025 #if COMPILER(GCC) && defined(NDEBUG) && __GNUC__ > 3 00026 #define ALWAYS_INLINE inline __attribute__ ((__always_inline__)) 00027 #elif COMPILER(MSVC) && defined(NDEBUG) 00028 #define ALWAYS_INLINE __forceinline 00029 #else 00030 #define ALWAYS_INLINE inline 00031 #endif 00032 #endif 00033 00034 #ifndef ALWAYS_INLINE_INTO 00035 #if COMPILER(GCC) && defined(NDEBUG) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || __GNUC__ > 4) 00036 #define ALWAYS_INLINE_INTO __attribute__ ((__flatten__)) 00037 #else 00038 #define ALWAYS_INLINE_INTO 00039 #endif 00040 #endif 00041 00042 00043 #ifndef NEVER_INLINE 00044 #if COMPILER(GCC) && __GNUC__ > 3 00045 #define NEVER_INLINE __attribute__ ((__noinline__)) 00046 #else 00047 #define NEVER_INLINE 00048 #endif 00049 #endif
KDE 4.6 API Reference