xref: /netbsd-src/external/gpl3/gcc.old/lib/libstdc++-v3/arch/coldfire/cxxabi_tweaks.h (revision 36ac495d2b3ea2b9d96377b2143ebfedac224b92)
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