Explicitly include a boost "windows" folder even on linux
[supercollider.git] / include / common / function_attributes.h
blobc59bacfffa6c7656013eef037e685d324048ab93
1 /*
2 SuperCollider real time audio synthesis system
3 Copyright (c) 2011 Tim Blechmann. All rights reserved.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 #ifndef FUNCTION_ATTRIBUTES_H
21 #define FUNCTION_ATTRIBUTES_H
23 #ifdef __GNUC__
25 #ifdef _WIN32
26 #undef CONST
27 #undef PURE
28 #endif
30 #define CONST __attribute__((const))
31 #define PURE __attribute__((pure))
33 #define MALLOC __attribute__((malloc))
34 #define HOT __attribute__((hot))
35 #define COLD __attribute__((cold))
36 #define FLATTEN __attribute__((flatten))
38 #endif
40 #ifdef __clang__
41 #undef HOT
42 #undef FLATTEN
43 #endif
45 #ifdef __PATHCC__
46 #undef HOT
47 #undef FLATTEN
48 #endif
51 #ifndef _WIN32
52 #ifndef PURE
53 #define PURE /*PURE*/
54 #endif
56 #ifndef CONST
57 #define CONST /*CONST*/
58 #endif
59 #endif
61 #ifndef MALLOC
62 #define MALLOC /*MALLOC*/
63 #endif
65 #ifndef HOT
66 #define HOT /*HOT*/
67 #endif
69 #ifndef COLD
70 #define COLD /*COLD*/
71 #endif
73 #ifndef FLATTEN
74 #define FLATTEN /*FLATTEN*/
75 #endif
76 #endif /* FUNCTION_ATTRIBUTES_H */