MINOR: compiler: add a TOSTR() macro to turn a value into a string

Pretty often we have to emit a value (setting, limit etc) in an error
message, and this value is known at compile-time, and just doing this
forces to use a printf format such as "%d". Let's have a simple macro
to turn any other macro or value into a string that can be concatenated
with the rest of the string around. This simplifies error messages
production on the CLI for example.
This commit is contained in:
Willy Tarreau 2023-02-20 19:18:47 +01:00
parent 25917cdb12
commit 27629a7d65

View File

@ -199,6 +199,13 @@
*/
#define ONLY_ONCE() ({ static char __cnt; !_HA_ATOMIC_XCHG(&__cnt, 1); })
/* makes a string from a constant (number or macro), avoids the need for
* printf("%d") format just to dump a setting limit or value in an error
* message. We use two levels so that macros are resolved.
*/
#define _TOSTR(x) #x
#define TOSTR(x) _TOSTR(x)
/*
* Gcc >= 3 provides the ability for the program to give hints to the
* compiler about what branch of an if is most likely to be taken. This