comparison libtomcrypt/src/headers/tomcrypt_argchk.h @ 1471:6dba84798cd5

Update to libtomcrypt 1.18.1, merged with Dropbear changes
author Matt Johnston <matt@ucc.asn.au>
date Fri, 09 Feb 2018 21:44:05 +0800
parents f849a5ca2efc
children 1ff2a1034c52
comparison
equal deleted inserted replaced
1470:8bba51a55704 1471:6dba84798cd5
1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
2 *
3 * LibTomCrypt is a library that provides various cryptographic
4 * algorithms in a highly modular and flexible manner.
5 *
6 * The library is free for all purposes without any express
7 * guarantee it works.
8 */
9
1 /* Defines the LTC_ARGCHK macro used within the library */ 10 /* Defines the LTC_ARGCHK macro used within the library */
2 /* ARGTYPE is defined in mycrypt_cfg.h */ 11 /* ARGTYPE is defined in tomcrypt_cfg.h */
3 #if ARGTYPE == 0 12 #if ARGTYPE == 0
4 13
5 #include <signal.h> 14 #include <signal.h>
6 15
7 /* portability macros for compiler-specific code attributes */ 16 /* portability macros for compiler-specific code attributes */
11 #define ATTRIB_NORETURN 20 #define ATTRIB_NORETURN
12 #endif 21 #endif
13 22
14 23
15 /* this is the default LibTomCrypt macro */ 24 /* this is the default LibTomCrypt macro */
16 void crypt_argchk(char *v, char *s, int d) ATTRIB_NORETURN; 25 #if defined(__clang__) || defined(__GNUC_MINOR__)
17 #define LTC_ARGCHK(x) if (!(x)) { crypt_argchk(#x, __FILE__, __LINE__); } 26 #define NORETURN __attribute__ ((noreturn))
18 #define LTC_ARGCHKVD(x) LTC_ARGCHK(x) 27 #else
28 #define NORETURN
29 #endif
30
31 void crypt_argchk(const char *v, const char *s, int d) NORETURN;
32 #define LTC_ARGCHK(x) do { if (!(x)) { crypt_argchk(#x, __FILE__, __LINE__); } }while(0)
33 #define LTC_ARGCHKVD(x) do { if (!(x)) { crypt_argchk(#x, __FILE__, __LINE__); } }while(0)
19 34
20 #elif ARGTYPE == 1 35 #elif ARGTYPE == 1
21 36
22 /* fatal type of error */ 37 /* fatal type of error */
23 #define LTC_ARGCHK(x) assert((x)) 38 #define LTC_ARGCHK(x) assert((x))
39 #define LTC_ARGCHKVD(x) if (!(x)) return; 54 #define LTC_ARGCHKVD(x) if (!(x)) return;
40 55
41 #endif 56 #endif
42 57
43 58
44 /* $Source$ */ 59 /* ref: $Format:%D$ */
45 /* $Revision$ */ 60 /* git commit: $Format:%H$ */
46 /* $Date$ */ 61 /* commit time: $Format:%ai$ */