xref: /minix3/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/cxxabi_tweaks.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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