/usr/include/cpl_macros.h is in libcpl-dev 5.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | /* $Id: cpl_macros.h,v 1.9 2011/01/11 12:26:35 llundin Exp $
*
* This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* $Author: llundin $
* $Date: 2011/01/11 12:26:35 $
* $Revision: 1.9 $
* $Name: cpl-5_3_0-BRANCH $
*/
/*
* This file must not include any other file than cxmacros.h
*/
#ifndef CPL_MACROS_H
#define CPL_MACROS_H
#include <cxmacros.h>
/*
* C code guard
*/
#undef CPL_BEGIN_DECLS
#undef CPL_END_DECLS
#define CPL_BEGIN_DECLS CX_BEGIN_DECLS
#define CPL_END_DECLS CX_END_DECLS
/* Needed to concatenate two and three macro arguments */
#define CPL_CONCAT(a,b) a ## _ ## b
#define CPL_CONCAT2X(a,b) CPL_CONCAT(a,b)
#define CPL_CONCAT3X(a,b,c) CPL_CONCAT2X(CPL_CONCAT2X(a,b),c)
/*
(Try to) determine support for the function __attribute__
These attributes are used in CPL (from the given gcc version)
2.3 format (used only from gcc 3)
2.5 const (used only from gcc 3)
2.96 pure (used only from gcc 3)
3.0 malloc
3.1 deprecated
3.3 nonnull
3.4 warn_unused_result
4.3 alloc_size
*/
#if defined __GNUC__ && __GNUC__ > 2
/* gcc 3 or higher */
# define CPL_ATTR_CONST __attribute__((const))
# define CPL_ATTR_PRINTF(A,B) __attribute__((format (printf, A, B)))
# define CPL_ATTR_PURE __attribute__((pure))
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 0
/* gcc 3.1 or higher */
# define CPL_ATTR_DEPRECATED __attribute__((deprecated))
# endif
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 2
/* gcc 3.3 or higher */
# define CPL_ATTR_NONNULL __attribute__((nonnull))
# define CPL_HAVE_ATTR_NONNULL
# endif
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 3
/* gcc 3.4 or higher */
# define CPL_ATTR_ALLOC __attribute__((malloc, warn_unused_result))
# if __GNUC__ > 4 || __GNUC__ == 4 && defined __GNUC_MINOR__ && __GNUC_MINOR__ > 2
/* gcc 4.3 or higher */
# define CPL_ATTR_MALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(1)))
# define CPL_ATTR_CALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(1,2)))
# define CPL_ATTR_REALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(2)))
# else
/* gcc 3.4 to 4.2 */
# define CPL_ATTR_MALLOC __attribute__((malloc, warn_unused_result))
# define CPL_ATTR_CALLOC __attribute__((malloc, warn_unused_result))
# define CPL_ATTR_REALLOC __attribute__((malloc, warn_unused_result))
# endif
# else
/* gcc 3.0 to 3.3 */
# define CPL_ATTR_ALLOC __attribute__((malloc))
# define CPL_ATTR_MALLOC __attribute__((malloc))
# define CPL_ATTR_CALLOC __attribute__((malloc))
# define CPL_ATTR_REALLOC __attribute__((malloc))
# endif
#endif
#ifndef CPL_ATTR_ALLOC
# define CPL_ATTR_ALLOC /* __attribute__ */
#endif
#ifndef CPL_ATTR_CALLOC
# define CPL_ATTR_CALLOC /*__attribute__ */
#endif
#ifndef CPL_ATTR_CONST
# define CPL_ATTR_CONST /* __attribute__ */
#endif
#ifndef CPL_ATTR_DEPRECATED
# define CPL_ATTR_DEPRECATED /* __attribute__ */
#endif
#ifndef CPL_ATTR_PURE
# define CPL_ATTR_PURE /* __attribute__ */
#endif
#ifndef CPL_ATTR_MALLOC
# define CPL_ATTR_MALLOC /* __attribute__ */
#endif
#ifndef CPL_ATTR_NONNULL
# define CPL_ATTR_NONNULL /* __attribute__ */
#endif
#ifndef CPL_ATTR_PRINTF
# define CPL_ATTR_PRINTF(A,B) /* __attribute__ */
#endif
#ifndef CPL_ATTR_REALLOC
# define CPL_ATTR_REALLOC /* __attribute__ */
#endif
#endif /* CPL_MACROS_H */
|