27#ifndef INCLUDED_CODE_ANNOTATION 
   28#define INCLUDED_CODE_ANNOTATION 
   51#if HAVE_C99 && GCC_VERSION  
   52# define UNUSED2(param) _Pragma("unused " #param)
 
   56# define UNUSED2(param) do{ if(¶m) {} } while(false) 
   58# define UNUSED2(param) ((void)(param)) 
   83# define NOTHROW_DECLARE __attribute__((nothrow)) 
   84# define NOTHROW_DEFINE  
   86# define NOTHROW_DECLARE __attribute__((nothrow)) 
   87# define NOTHROW_DEFINE  
   92# define NOTHROW_DECLARE __declspec(nothrow) 
   93# define NOTHROW_DEFINE __declspec(nothrow) 
   97# define NOTHROW_DECLARE 
   98# define NOTHROW_DEFINE 
  106#if __has_feature(attribute_analyzer_noreturn) 
  107# define ANALYZER_NORETURN __attribute__((analyzer_noreturn)) 
  109# define ANALYZER_NORETURN 
  144#define HAVE_ASSUME_UNREACHABLE 1 
  145#if MSC_VERSION && !ICC_VERSION  
  146# define ASSUME_UNREACHABLE __assume(0) 
  148# define ASSUME_UNREACHABLE __builtin_unreachable() 
  150# define ASSUME_UNREACHABLE 
  151# undef HAVE_ASSUME_UNREACHABLE 
  152# define HAVE_ASSUME_UNREACHABLE 0 
  158#if HAVE_ASSUME_UNREACHABLE && !CONFIG_ENABLE_CHECKS 
  159# define UNREACHABLE ASSUME_UNREACHABLE 
  167        DEBUG_WARN_ERR(ERR::LOGIC); \ 
  183#define NODEFAULT default: UNREACHABLE 
  191#define PASTE3_HIDDEN__(a, b, c) a ## b ## c 
  192#define PASTE3__(a, b, c) PASTE3_HIDDEN__(a, b, c) 
  193#define UID__  PASTE3__(LINE_, __LINE__, _) 
  194#define UID2__ PASTE3__(LINE_, __LINE__, _2) 
  209#define cassert(expr) static_assert((expr), #expr) 
  229#define NONCOPYABLE(className) \ 
  230    className(const className&) = delete; \ 
  231    className& operator=(const className&) = delete 
  237#define MOVABLE(className) \ 
  238    className(className&&) = default; \ 
  239    className& operator=(className&&) = default 
  242# define ASSUME_ALIGNED(ptr, multiple) __assume_aligned(ptr, multiple) 
  244# define ASSUME_ALIGNED(ptr, multiple) 
  252# define PRINTF_ARGS(fmtpos) __attribute__ ((format (printf, fmtpos, fmtpos+1))) 
  253# define VPRINTF_ARGS(fmtpos) __attribute__ ((format (printf, fmtpos, 0))) 
  254# define WPRINTF_ARGS(fmtpos)  
  255# define VWPRINTF_ARGS(fmtpos)  
  257# define PRINTF_ARGS(fmtpos) 
  258# define VPRINTF_ARGS(fmtpos) 
  259# define WPRINTF_ARGS(fmtpos) 
  260# define VWPRINTF_ARGS(fmtpos) 
  266# define SENTINEL_ARG __attribute__ ((sentinel)) 
  275# define COMPILER_FENCE __memory_barrier() 
  278# pragma intrinsic(_ReadWriteBarrier) 
  279# define COMPILER_FENCE _ReadWriteBarrier() 
  281# define COMPILER_FENCE asm volatile("" : : : "memory")
 
  283# define COMPILER_FENCE 
  293#  define _W64 __attribute__((mode (__pointer__))) 
  321# define RESTRICT __restrict__ 
  324# define RESTRICT __restrict 
  331# error ICC_VERSION defined without either GCC_VERSION or an adequate MSC_VERSION 
  350#define ARRAY_SIZE(name) (sizeof(*ArraySizeDeducer(name))) 
  359# define __func__ __FUNCTION__ 
  362# define __func__ "(unknown)" 
  367#if defined(__cplusplus) 
  368# define EXTERN_C extern "C" 
  370# define EXTERN_C extern 
  375# define INLINE __forceinline 
  377# define INLINE inline 
  382# define CALL_CONV __cdecl 
  388#if MSC_VERSION && !ARCH_AMD64 
  389# define DECORATED_NAME(name) _##name 
  391# define DECORATED_NAME(name) name 
  397#define STRINGIZE2(id) # id 
  398#define STRINGIZE(id) STRINGIZE2(id) 
  403#define WIDEN2(x) L ## x 
  404#define WIDEN(x) WIDEN2(x) 
  407#if __has_cpp_attribute(fallthrough) || defined(__cplusplus) && __cplusplus >= 201703L 
  408# define FALLTHROUGH [[fallthrough]] 
  409#elif __has_cpp_attribute(gnu::fallthrough) 
  410# define FALLTHROUGH [[gnu::fallthrough]] 
  411#elif __has_cpp_attribute(clang::fallthrough) 
  412# define FALLTHROUGH [[clang::fallthrough]] 
char(* ArraySizeDeducer(T(&)[n]))[n]
void ignore_result(const T &)
Silence the 'unused result' warning.
Definition: code_annotation.h:67
#define T(string_literal)
Definition: secure_crt.cpp:77