[PATCH v4 11/14] log: add a per line log helper
Thomas Monjalon
thomas at monjalon.net
Tue Dec 19 16:45:19 CET 2023
18/12/2023 15:38, David Marchand:
> +#ifdef RTE_TOOLCHAIN_GCC
> +#define RTE_LOG_CHECK_NO_NEWLINE(fmt) \
> + static_assert(!__builtin_strchr(fmt, '\n'), \
> + "This log format string contains a \\n")
> +#else
> +#define RTE_LOG_CHECK_NO_NEWLINE(...)
> +#endif
No support in clang?
> +#define RTE_LOG_LINE(l, t, ...) do { \
> + RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(__VA_ARGS__ ,)); \
> + RTE_LOG(l, t, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \
> + RTE_FMT_TAIL(__VA_ARGS__ ,))); \
> +} while (0)
> +
> +#define RTE_LOG_DP_LINE(l, t, ...) do { \
> + RTE_LOG_CHECK_NO_NEWLINE(RTE_FMT_HEAD(__VA_ARGS__ ,)); \
> + RTE_LOG_DP(l, t, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__ ,) "\n", \
> + RTE_FMT_TAIL(__VA_ARGS__ ,))); \
> +} while (0)
I don't think we need a space between __VA_ARGS__ and the comma.
More information about the dev
mailing list