This is Unofficial EPICS BASE Doxygen Site
compilerSpecific.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2008 UChicago Argonne LLC, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * EPICS BASE is distributed subject to a Software License Agreement found
7 * in file LICENSE that is included with this distribution.
8 \*************************************************************************/
9 
10 /*
11  * Author:
12  * Jeffrey O. Hill
13  * johill@lanl.gov
14  */
15 
16 #ifndef compilerSpecific_h
17 #define compilerSpecific_h
18 
19 #ifndef __GNUC__
20 # error compiler/gcc/compilerSpecific.h is only for use with the gnu compiler
21 #endif
22 
23 #ifdef __clang__
24 # error compiler/gcc/compilerSpecific.h is not for use with the clang compiler
25 #endif
26 
27 #define EPICS_ALWAYS_INLINE __inline__ __attribute__((always_inline))
28 
29 /* Expands to a 'const char*' which describes the name of the current function scope */
30 #define EPICS_FUNCTION __PRETTY_FUNCTION__
31 
32 #ifdef __cplusplus
33 
34 /*
35  * in general we dont like ifdefs but they do allow us to check the
36  * compiler version and make the optimistic assumption that
37  * standards incompliance issues will be fixed by future compiler
38  * releases
39  */
40 
41 /*
42  * CXX_PLACEMENT_DELETE - defined if compiler supports placement delete
43  */
44 #define CXX_PLACEMENT_DELETE
45 
46 #endif /* __cplusplus */
47 
48 /*
49  * Enable format-string checking if possible
50  */
51 #define EPICS_PRINTF_STYLE(f,a) __attribute__((format(__printf__,f,a)))
52 
53 /*
54  * Deprecation marker
55  */
56 #define EPICS_DEPRECATED __attribute__((deprecated))
57 
58 /*
59  * Unused marker
60  */
61 #define EPICS_UNUSED __attribute__((unused))
62 
63 #endif /* ifndef compilerSpecific_h */