20#if     __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) 
   21#  define RPM_GNUC_EXTENSION __extension__ 
   23#  define RPM_GNUC_EXTENSION 
   28#if    __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) 
   29#define RPM_GNUC_PURE                            \ 
   30  __attribute__((__pure__)) 
   31#define RPM_GNUC_MALLOC             \ 
   32  __attribute__((__malloc__)) 
   35#define RPM_GNUC_MALLOC 
   38#if     (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) 
   39#define RPM_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) 
   40#define RPM_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) 
   42#define RPM_GNUC_ALLOC_SIZE(x) 
   43#define RPM_GNUC_ALLOC_SIZE2(x,y) 
   47#define RPM_GNUC_NULL_TERMINATED __attribute__((__sentinel__)) 
   49#define RPM_GNUC_NULL_TERMINATED 
   52#if     __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) 
   53#define RPM_GNUC_PRINTF( format_idx, arg_idx )    \ 
   54  __attribute__((__format__ (__printf__, format_idx, arg_idx))) 
   55#define RPM_GNUC_SCANF( format_idx, arg_idx )     \ 
   56  __attribute__((__format__ (__scanf__, format_idx, arg_idx))) 
   57#define RPM_GNUC_FORMAT( arg_idx )                \ 
   58  __attribute__((__format_arg__ (arg_idx))) 
   59#define RPM_GNUC_NORETURN                         \ 
   60  __attribute__((__noreturn__)) 
   61#define RPM_GNUC_CONST                            \ 
   62  __attribute__((__const__)) 
   63#define RPM_GNUC_UNUSED                           \ 
   64  __attribute__((__unused__)) 
   65#define RPM_GNUC_NO_INSTRUMENT          \ 
   66  __attribute__((__no_instrument_function__)) 
   68#define RPM_GNUC_PRINTF( format_idx, arg_idx ) 
   69#define RPM_GNUC_SCANF( format_idx, arg_idx ) 
   70#define RPM_GNUC_FORMAT( arg_idx ) 
   71#define RPM_GNUC_NORETURN 
   73#define RPM_GNUC_UNUSED 
   74#define RPM_GNUC_NO_INSTRUMENT 
   77#if    __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) 
   78#define RPM_GNUC_DEPRECATED                            \ 
   79  __attribute__((__deprecated__)) 
   81#define RPM_GNUC_DEPRECATED 
   84#if     __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) 
   85#define RPM_GNUC_MAY_ALIAS __attribute__((may_alias)) 
   86#define RPM_GNUC_NONNULL( ... ) \ 
   87  __attribute__((__nonnull__ (__VA_ARGS__))) 
   89#define RPM_GNUC_MAY_ALIAS 
   90#define RPM_GNUC_NONNULL( ... ) 
   93#if    __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) 
   94#define RPM_GNUC_WARN_UNUSED_RESULT         \ 
   95  __attribute__((warn_unused_result)) 
   97#define RPM_GNUC_WARN_UNUSED_RESULT 
  100#if    __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) 
  101#  define RPM_GNUC_INTERNAL __attribute__((visibility("hidden"))) 
  103#  define RPM_GNUC_INTERNAL 
  109# define RPM_BEGIN_DECLS  extern "C" { 
  110# define RPM_END_DECLS    } 
  112# define RPM_BEGIN_DECLS 
  113# define RPM_END_DECLS 
  121RPM_GNUC_MALLOC RPM_GNUC_ALLOC_SIZE(1)
 
  122void * rmalloc(
size_t size);
 
  124RPM_GNUC_MALLOC RPM_GNUC_ALLOC_SIZE2(1,2)
 
  125void * rcalloc(
size_t nmemb, 
size_t size);
 
  128RPM_GNUC_MALLOC RPM_GNUC_ALLOC_SIZE2(2,3)
 
  129void * rreallocn(
void * ptr, 
size_t nmemb, 
size_t size);
 
  131RPM_GNUC_ALLOC_SIZE(2)
 
  132void * rrealloc(
void *ptr, 
size_t size);
 
  134char * rstrdup(const 
char *str);
 
  136char * rstrndup(const 
char *str, 
size_t n);
 
  139void * rfree(
void *ptr);
 
rpmMemFailFunc rpmSetMemFail(rpmMemFailFunc func, void *data)
void *(* rpmMemFailFunc)(size_t size, void *data)
Definition rpmutil.h:152