Common: Allow PRINTFLIKE to work on Clang
And thus clang-cl.
This commit is contained in:
parent
8ba85d62dc
commit
401295ebdb
|
@ -60,7 +60,7 @@ public:
|
||||||
void append(const SmallStringBase& str);
|
void append(const SmallStringBase& str);
|
||||||
|
|
||||||
// append formatted string to this string
|
// append formatted string to this string
|
||||||
void append_sprintf(const char* format, ...) printflike(2, 3);
|
void append_sprintf(const char* format, ...) PRINTFLIKE(2, 3);
|
||||||
void append_vsprintf(const char* format, va_list ap);
|
void append_vsprintf(const char* format, va_list ap);
|
||||||
|
|
||||||
template<typename... T>
|
template<typename... T>
|
||||||
|
@ -80,7 +80,7 @@ public:
|
||||||
void prepend(const SmallStringBase& str);
|
void prepend(const SmallStringBase& str);
|
||||||
|
|
||||||
// append formatted string to this string
|
// append formatted string to this string
|
||||||
void prepend_sprintf(const char* format, ...) printflike(2, 3);
|
void prepend_sprintf(const char* format, ...) PRINTFLIKE(2, 3);
|
||||||
void prepend_vsprintf(const char* format, va_list ap);
|
void prepend_vsprintf(const char* format, va_list ap);
|
||||||
|
|
||||||
template<typename... T>
|
template<typename... T>
|
||||||
|
@ -94,7 +94,7 @@ public:
|
||||||
void insert(s32 offset, const SmallStringBase& str);
|
void insert(s32 offset, const SmallStringBase& str);
|
||||||
|
|
||||||
// set to formatted string
|
// set to formatted string
|
||||||
void sprintf(const char* format, ...) printflike(2, 3);
|
void sprintf(const char* format, ...) PRINTFLIKE(2, 3);
|
||||||
void vsprintf(const char* format, va_list ap);
|
void vsprintf(const char* format, va_list ap);
|
||||||
|
|
||||||
template<typename... T>
|
template<typename... T>
|
||||||
|
@ -333,7 +333,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override the fromstring method
|
// Override the fromstring method
|
||||||
static SmallStackString from_sprintf(const char* format, ...) printflike(1, 2);
|
static SmallStackString from_sprintf(const char* format, ...) PRINTFLIKE(1, 2);
|
||||||
|
|
||||||
template<typename... T>
|
template<typename... T>
|
||||||
static SmallStackString from_format(fmt::format_string<T...> fmt, T&&... args);
|
static SmallStackString from_format(fmt::format_string<T...> fmt, T&&... args);
|
||||||
|
|
|
@ -56,19 +56,21 @@ char (&__countof_ArraySizeHelper(T (&array)[N]))[N];
|
||||||
|
|
||||||
// offsetof macro. Need to use __builtin_offsetof(), otherwise it doesn't work in constant expressions.
|
// offsetof macro. Need to use __builtin_offsetof(), otherwise it doesn't work in constant expressions.
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if defined(__clang__) || defined(__GNUC__)
|
||||||
|
|
||||||
#define OFFSETOF(st, m) __builtin_offsetof(st, m)
|
#define OFFSETOF(st, m) __builtin_offsetof(st, m)
|
||||||
|
|
||||||
|
#define PRINTFLIKE(n, m) __attribute__((format(printf, n, m)))
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef offsetof
|
#ifdef offsetof
|
||||||
#define OFFSETOF(st, m) offsetof(st, m)
|
#define OFFSETOF(st, m) offsetof(st, m)
|
||||||
#else
|
#else
|
||||||
#define OFFSETOF(st, m) ((size_t)((char*)&((st*)(0))->m - (char*)0))
|
#define OFFSETOF(st, m) ((size_t)((char*)&((st*)(0))->m - (char*)0))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#define PRINTFLIKE(n, m)
|
||||||
#define printflike(n, m) __attribute__((format(printf, n, m)))
|
|
||||||
#else
|
|
||||||
#define printflike(n, m)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// [[noreturn]] which can be used on function pointers.
|
// [[noreturn]] which can be used on function pointers.
|
||||||
|
|
|
@ -193,7 +193,7 @@ void DisassembleAndLog(u32 addr);
|
||||||
void DisassembleAndPrint(u32 addr, u32 instructions_before, u32 instructions_after);
|
void DisassembleAndPrint(u32 addr, u32 instructions_before, u32 instructions_after);
|
||||||
|
|
||||||
// Write to CPU execution log file.
|
// Write to CPU execution log file.
|
||||||
void WriteToExecutionLog(const char* format, ...) printflike(1, 2);
|
void WriteToExecutionLog(const char* format, ...) PRINTFLIKE(1, 2);
|
||||||
|
|
||||||
// Trace Routines
|
// Trace Routines
|
||||||
bool IsTraceEnabled();
|
bool IsTraceEnabled();
|
||||||
|
|
Loading…
Reference in New Issue