summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/config/test/abi/abi_test.hpp
blob: a2bec783bf5c8ef1b70da66050d46c67304301e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//  (C) Copyright John Maddock 2003. 
//  Use, modification and distribution are subject to the 
//  Boost Software License, Version 1.0. (See accompanying file 
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

//  See http://www.boost.org/libs/config for the most recent version.


#ifndef BOOST_ABI_TEST_HPP
#define BOOST_ABI_TEST_HPP

#include <boost/config.hpp>
#include <boost/cstdint.hpp>

#ifdef BOOST_HAS_ABI_HEADERS
#include BOOST_ABI_PREFIX
#endif

//
// the following class is designed to break if the ABI
// it's compiled with does not match that of the client
// calling it....
//

struct empty{};

class abi_test : protected empty
{
private:
   empty e;
   char c;
   boost::int32_t i;
public:
   inline char inline_one()const
   { return c; }
   inline boost::int32_t inline_two()const
   { return i; }

   virtual char virtual_one()const;
   virtual boost::int32_t virtual_two()const;

   abi_test();
};



#ifdef BOOST_HAS_ABI_HEADERS
#include BOOST_ABI_SUFFIX
#endif

#endif // BOOST_ABI_TEST_HPP