118a5822eSThomas Veerman /* This file is automatically generated. DO NOT EDIT! */ 2*0a6a1f1dSLionel Sambuc /* Generated from: NetBSD: mknative-gcc,v 1.70 2013/05/05 07:11:34 skrll Exp */ 3*0a6a1f1dSLionel Sambuc /* Generated from: NetBSD: mknative.common,v 1.8 2006/05/26 19:17:21 mrg Exp */ 418a5822eSThomas Veerman 518a5822eSThomas Veerman // Control various target specific ABI tweaks. Generic version. 618a5822eSThomas Veerman 7*0a6a1f1dSLionel Sambuc // Copyright (C) 2004-2013 Free Software Foundation, Inc. 818a5822eSThomas Veerman // 918a5822eSThomas Veerman // This file is part of the GNU ISO C++ Library. This library is free 1018a5822eSThomas Veerman // software; you can redistribute it and/or modify it under the 1118a5822eSThomas Veerman // terms of the GNU General Public License as published by the 1218a5822eSThomas Veerman // Free Software Foundation; either version 3, or (at your option) 1318a5822eSThomas Veerman // any later version. 1418a5822eSThomas Veerman 1518a5822eSThomas Veerman // This library is distributed in the hope that it will be useful, 1618a5822eSThomas Veerman // but WITHOUT ANY WARRANTY; without even the implied warranty of 1718a5822eSThomas Veerman // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1818a5822eSThomas Veerman // GNU General Public License for more details. 1918a5822eSThomas Veerman 2018a5822eSThomas Veerman // Under Section 7 of GPL version 3, you are granted additional 2118a5822eSThomas Veerman // permissions described in the GCC Runtime Library Exception, version 2218a5822eSThomas Veerman // 3.1, as published by the Free Software Foundation. 2318a5822eSThomas Veerman 2418a5822eSThomas Veerman // You should have received a copy of the GNU General Public License and 2518a5822eSThomas Veerman // a copy of the GCC Runtime Library Exception along with this program; 2618a5822eSThomas Veerman // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2718a5822eSThomas Veerman // <http://www.gnu.org/licenses/>. 2818a5822eSThomas Veerman 29*0a6a1f1dSLionel Sambuc /** @file bits/cxxabi_tweaks.h 30*0a6a1f1dSLionel Sambuc * This is an internal header file, included by other library headers. 31*0a6a1f1dSLionel Sambuc * Do not attempt to use it directly. @headername{cxxabi.h} 3218a5822eSThomas Veerman */ 3318a5822eSThomas Veerman 3418a5822eSThomas Veerman #ifndef _CXXABI_TWEAKS_H 3518a5822eSThomas Veerman #define _CXXABI_TWEAKS_H 1 3618a5822eSThomas Veerman 3718a5822eSThomas Veerman #ifdef __cplusplus 3818a5822eSThomas Veerman namespace __cxxabiv1 3918a5822eSThomas Veerman { 4018a5822eSThomas Veerman extern "C" 4118a5822eSThomas Veerman { 4218a5822eSThomas Veerman #endif 4318a5822eSThomas Veerman 4418a5822eSThomas Veerman // The generic ABI uses the first byte of a 64-bit guard variable. 4518a5822eSThomas Veerman #define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0) 4618a5822eSThomas Veerman #define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1 4718a5822eSThomas Veerman #define _GLIBCXX_GUARD_BIT __guard_test_bit (0, 1) 4818a5822eSThomas Veerman #define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1) 4918a5822eSThomas Veerman #define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1) 5018a5822eSThomas Veerman __extension__ typedef int __guard __attribute__((mode (__DI__))); 5118a5822eSThomas Veerman 5218a5822eSThomas Veerman // __cxa_vec_ctor has void return type. 5318a5822eSThomas Veerman typedef void __cxa_vec_ctor_return_type; 5418a5822eSThomas Veerman #define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return 5518a5822eSThomas Veerman // Constructors and destructors do not return a value. 5618a5822eSThomas Veerman typedef void __cxa_cdtor_return_type; 5718a5822eSThomas Veerman 5818a5822eSThomas Veerman #ifdef __cplusplus 5918a5822eSThomas Veerman } 6018a5822eSThomas Veerman } // namespace __cxxabiv1 6118a5822eSThomas Veerman #endif 6218a5822eSThomas Veerman 6318a5822eSThomas Veerman #endif 64