1/* This file is automatically generated. DO NOT EDIT! */ 2/* Generated from: NetBSD: mknative-gcc,v 1.22 2006/06/25 03:06:15 mrg Exp */ 3/* Generated from: NetBSD: mknative.common,v 1.8 2006/05/26 19:17:21 mrg Exp */ 4 5// Control various target specific ABI tweaks. Generic version. 6 7// Copyright (C) 2004, 2006 Free Software Foundation, Inc. 8// 9// This file is part of the GNU ISO C++ Library. This library is free 10// software; you can redistribute it and/or modify it under the 11// terms of the GNU General Public License as published by the 12// Free Software Foundation; either version 2, or (at your option) 13// any later version. 14 15// This library is distributed in the hope that it will be useful, 16// but WITHOUT ANY WARRANTY; without even the implied warranty of 17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18// GNU General Public License for more details. 19 20// You should have received a copy of the GNU General Public License along 21// with this library; see the file COPYING. If not, write to the Free 22// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 23// USA. 24 25// As a special exception, you may use this file as part of a free software 26// library without restriction. Specifically, if other files instantiate 27// templates or use macros or inline functions from this file, or you compile 28// this file and link it with other files to produce an executable, this 29// file does not by itself cause the resulting executable to be covered by 30// the GNU General Public License. This exception does not however 31// invalidate any other reasons why the executable file might be covered by 32// the GNU General Public License. 33 34#ifndef _CXXABI_TWEAKS_H 35#define _CXXABI_TWEAKS_H 1 36 37#ifdef __cplusplus 38namespace __cxxabiv1 39{ 40 extern "C" 41 { 42#endif 43 44 // The generic ABI uses the first byte of a 64-bit guard variable. 45#define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0) 46#define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1 47 __extension__ typedef int __guard __attribute__((mode (__DI__))); 48 49 // __cxa_vec_ctor has void return type. 50 typedef void __cxa_vec_ctor_return_type; 51#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return 52 // Constructors and destructors do not return a value. 53 typedef void __cxa_cdtor_return_type; 54 55#ifdef __cplusplus 56 } 57} // namespace __cxxabiv1 58#endif 59 60#endif 61