Skip to content

Fix Clang warnings by using proper function prototypes in macros #179

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
May 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 17 additions & 11 deletions tracetools/include/tracetools/tracetools.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,28 @@
# define _GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, NAME, ...) NAME

// *INDENT-OFF*
# define _FUNC_TRACEPOINT(event_name) \
(ros_trace_ ## event_name)
# define _FUNC_TRACEPOINT_ENABLED(event_name) \
(ros_trace_enabled_ ## event_name)
# define _FUNC_DO_TRACEPOINT(event_name) \
(ros_trace_do_ ## event_name)
# define _TRACEPOINT_NOARGS(event_name) \
(ros_trace_ ## event_name)()
_FUNC_TRACEPOINT(event_name)()
# define _TRACEPOINT_ARGS(event_name, ...) \
(ros_trace_ ## event_name)(__VA_ARGS__)
_FUNC_TRACEPOINT(event_name)(__VA_ARGS__)
# define _DO_TRACEPOINT_NOARGS(event_name) \
(ros_trace_do_ ## event_name)()
_FUNC_DO_TRACEPOINT(event_name)()
# define _DO_TRACEPOINT_ARGS(event_name, ...) \
(ros_trace_do_ ## event_name)(__VA_ARGS__)
_FUNC_DO_TRACEPOINT(event_name)(__VA_ARGS__)
# define _DECLARE_TRACEPOINT_NOARGS(event_name) \
TRACETOOLS_PUBLIC void ros_trace_ ## event_name(); \
TRACETOOLS_PUBLIC bool ros_trace_enabled_ ## event_name(); \
TRACETOOLS_PUBLIC void ros_trace_do_ ## event_name();
TRACETOOLS_PUBLIC void _FUNC_TRACEPOINT(event_name)(void); \
TRACETOOLS_PUBLIC bool _FUNC_TRACEPOINT_ENABLED(event_name)(void); \
TRACETOOLS_PUBLIC void _FUNC_DO_TRACEPOINT(event_name)(void);
# define _DECLARE_TRACEPOINT_ARGS(event_name, ...) \
TRACETOOLS_PUBLIC void ros_trace_ ## event_name(__VA_ARGS__); \
TRACETOOLS_PUBLIC bool ros_trace_enabled_ ## event_name(); \
TRACETOOLS_PUBLIC void ros_trace_do_ ## event_name(__VA_ARGS__);
TRACETOOLS_PUBLIC void _FUNC_TRACEPOINT(event_name)(__VA_ARGS__); \
TRACETOOLS_PUBLIC bool _FUNC_TRACEPOINT_ENABLED(event_name)(void); \
TRACETOOLS_PUBLIC void _FUNC_DO_TRACEPOINT(event_name)(__VA_ARGS__);

# define _GET_MACRO_TRACEPOINT(...) \
_GET_MACRO( \
Expand Down Expand Up @@ -103,7 +109,7 @@
* This is the preferred method over calling the underlying function directly.
*/
# define TRACETOOLS_TRACEPOINT_ENABLED(event_name) \
ros_trace_enabled_ ## event_name()
_FUNC_TRACEPOINT_ENABLED(event_name)()
/// Call a tracepoint, without checking if it is enabled.
/**
* Combine this with `TRACEPOINT_ENABLED()` to check if a tracepoint is enabled before triggering
Expand Down
12 changes: 6 additions & 6 deletions tracetools/src/tracetools.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,28 @@
#define TRACEPOINT_PARAMS(...) __VA_ARGS__

#define DEFINE_TRACEPOINT(event_name, _TP_PARAMS, _TP_ARGS) \
void TRACETOOLS_TRACEPOINT(event_name, _TP_PARAMS) \
void _FUNC_TRACEPOINT(event_name)(_TP_PARAMS) \
{ \
_CONDITIONAL_TP(event_name, _TP_ARGS); \
} \
bool TRACETOOLS_TRACEPOINT_ENABLED(event_name) \
bool _FUNC_TRACEPOINT_ENABLED(event_name)(void) \
{ \
return _CONDITIONAL_TP_ENABLED(event_name); \
} \
void TRACETOOLS_DO_TRACEPOINT(event_name, _TP_PARAMS) \
void _FUNC_DO_TRACEPOINT(event_name)(_TP_PARAMS) \
{ \
_CONDITIONAL_DO_TP(event_name, _TP_ARGS); \
}
#define DEFINE_TRACEPOINT_NO_ARGS(event_name) \
void TRACETOOLS_TRACEPOINT(event_name) \
void _FUNC_TRACEPOINT(event_name)(void) \
{ \
_CONDITIONAL_TP(event_name); \
} \
bool TRACETOOLS_TRACEPOINT_ENABLED(event_name) \
bool _FUNC_TRACEPOINT_ENABLED(event_name)(void) \
{ \
return _CONDITIONAL_TP_ENABLED(event_name); \
} \
void TRACETOOLS_DO_TRACEPOINT(event_name) \
void _FUNC_DO_TRACEPOINT(event_name)(void) \
{ \
_CONDITIONAL_DO_TP(event_name); \
}
Expand Down