1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-09-18 18:27:18 +02:00

Format validation.

Include format validation in log messages by using GCC's format attribute.
This commit is contained in:
Sandu Liviu Catalin
2019-06-02 17:12:17 +03:00
parent faf0aea78e
commit b3ab60a6c7
4 changed files with 58 additions and 42 deletions

View File

@@ -6,6 +6,7 @@
// ------------------------------------------------------------------------------------------------
#include <cstddef>
#include <cstdint>
#include <cassert>
#include <string>
@@ -57,7 +58,7 @@
#else
#define SQMOD_OS_32
#define SQMOD_OS_LINUX32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 2
#endif
#endif
@@ -68,12 +69,12 @@
#if __x86_64__ || __ppc64__
#define SQMOD_OS_64
#define SQMOD_OS_MACOS64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 3
#else
#define SQMOD_OS_32
#define SQMOD_OS_MACOS32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 3
#endif
#endif
@@ -84,12 +85,12 @@
#if __x86_64__ || __ppc64__
#define SQMOD_OS_64
#define SQMOD_OS_UNIX64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 4
#else
#define SQMOD_OS_32
#define SQMOD_OS_UNIX32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 4
#endif
#endif
@@ -451,6 +452,21 @@ enum EntityType
} // Namespace:: SqMod
/* ------------------------------------------------------------------------------------------------
* FORMAT ATTRIBUTE
*/
#define SQMOD_FORMAT_ATTR(mode, index, first) __attribute__ ((format(mode, index, first)))
#ifdef _SQ64
#define PRINT_SZ_FMT "llu"
#define PRINT_INT_FMT "lld"
#define PRINT_UINT_FMT "llu"
#else
#define PRINT_SZ_FMT "u"
#define PRINT_INT_FMT "d"
#define PRINT_UINT_FMT "u"
#endif
/* ------------------------------------------------------------------------------------------------
* HELPERS
*/