1*36ac495dSmrg /* This file is automatically generated. DO NOT EDIT! */ 2*36ac495dSmrg /* Generated from: NetBSD: mknative-gcc,v 1.87 2016/03/17 23:41:21 mrg Exp */ 3*36ac495dSmrg /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp */ 4*36ac495dSmrg 5*36ac495dSmrg // Control various target specific ABI tweaks. Generic version. 6*36ac495dSmrg 7*36ac495dSmrg // Copyright (C) 2004-2015 Free Software Foundation, Inc. 8*36ac495dSmrg // 9*36ac495dSmrg // This file is part of the GNU ISO C++ Library. This library is free 10*36ac495dSmrg // software; you can redistribute it and/or modify it under the 11*36ac495dSmrg // terms of the GNU General Public License as published by the 12*36ac495dSmrg // Free Software Foundation; either version 3, or (at your option) 13*36ac495dSmrg // any later version. 14*36ac495dSmrg 15*36ac495dSmrg // This library is distributed in the hope that it will be useful, 16*36ac495dSmrg // but WITHOUT ANY WARRANTY; without even the implied warranty of 17*36ac495dSmrg // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*36ac495dSmrg // GNU General Public License for more details. 19*36ac495dSmrg 20*36ac495dSmrg // Under Section 7 of GPL version 3, you are granted additional 21*36ac495dSmrg // permissions described in the GCC Runtime Library Exception, version 22*36ac495dSmrg // 3.1, as published by the Free Software Foundation. 23*36ac495dSmrg 24*36ac495dSmrg // You should have received a copy of the GNU General Public License and 25*36ac495dSmrg // a copy of the GCC Runtime Library Exception along with this program; 26*36ac495dSmrg // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 27*36ac495dSmrg // <http://www.gnu.org/licenses/>. 28*36ac495dSmrg 29*36ac495dSmrg /** @file bits/cxxabi_tweaks.h 30*36ac495dSmrg * This is an internal header file, included by other library headers. 31*36ac495dSmrg * Do not attempt to use it directly. @headername{cxxabi.h} 32*36ac495dSmrg */ 33*36ac495dSmrg 34*36ac495dSmrg #ifndef _CXXABI_TWEAKS_H 35*36ac495dSmrg #define _CXXABI_TWEAKS_H 1 36*36ac495dSmrg 37*36ac495dSmrg #ifdef __cplusplus 38*36ac495dSmrg namespace __cxxabiv1 39*36ac495dSmrg { 40*36ac495dSmrg extern "C" 41*36ac495dSmrg { 42*36ac495dSmrg #endif 43*36ac495dSmrg 44*36ac495dSmrg // The generic ABI uses the first byte of a 64-bit guard variable. 45*36ac495dSmrg #define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0) 46*36ac495dSmrg #define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1 47*36ac495dSmrg #define _GLIBCXX_GUARD_BIT __guard_test_bit (0, 1) 48*36ac495dSmrg #define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1) 49*36ac495dSmrg #define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1) 50*36ac495dSmrg __extension__ typedef int __guard __attribute__((mode (__DI__))); 51*36ac495dSmrg 52*36ac495dSmrg // __cxa_vec_ctor has void return type. 53*36ac495dSmrg typedef void __cxa_vec_ctor_return_type; 54*36ac495dSmrg #define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return 55*36ac495dSmrg // Constructors and destructors do not return a value. 56*36ac495dSmrg typedef void __cxa_cdtor_return_type; 57*36ac495dSmrg 58*36ac495dSmrg #ifdef __cplusplus 59*36ac495dSmrg } 60*36ac495dSmrg } // namespace __cxxabiv1 61*36ac495dSmrg #endif 62*36ac495dSmrg 63*36ac495dSmrg #endif 64