Merge c:/dyninst/pc_bluegene/dyninst into dyn_pc_integration
[dyninst.git] / external / boost / current_function.hpp
1 #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
2 #define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
3
4 // MS compatible compilers support #pragma once
5
6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7 # pragma once
8 #endif
9
10 //
11 //  boost/current_function.hpp - BOOST_CURRENT_FUNCTION
12 //
13 //  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
14 //
15 // Distributed under the Boost Software License, Version 1.0. (See
16 // accompanying file LICENSE_1_0.txt or copy at
17 // http://www.boost.org/LICENSE_1_0.txt)
18 //
19 //  http://www.boost.org/libs/utility/current_function.html
20 //
21
22 namespace boost
23 {
24
25 namespace detail
26 {
27
28 inline void current_function_helper()
29 {
30
31 #if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600))
32
33 # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
34
35 #elif defined(__DMC__) && (__DMC__ >= 0x810)
36
37 # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
38
39 #elif defined(__FUNCSIG__)
40
41 # define BOOST_CURRENT_FUNCTION __FUNCSIG__
42
43 #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
44
45 # define BOOST_CURRENT_FUNCTION __FUNCTION__
46
47 #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
48
49 # define BOOST_CURRENT_FUNCTION __FUNC__
50
51 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
52
53 # define BOOST_CURRENT_FUNCTION __func__
54
55 #else
56
57 # define BOOST_CURRENT_FUNCTION "(unknown)"
58
59 #endif
60
61 }
62
63 } // namespace detail
64
65 } // namespace boost
66
67 #endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED