From: hollis_blanchard@mentor.com (Hollis Blanchard)
Subject: [lttng-dev] [RFC] [PATCH] -Werror=old-style-definition and UST tracepoints
Date: Fri, 8 Jun 2012 11:26:23 -0700 [thread overview]
Message-ID: <4FD243CF.60104@mentor.com> (raw)
I've defined a tracepoint without arguments:
TRACEPOINT_EVENT(
qemu_tb_hash,
flushall,
TP_ARGS(void),
TP_FIELDS()
)
When I build (with -Werror=old-style-definition), I get this error:
In file included from /home/hollisb/work/qemu.git/exec.c:59:0:
/home/hollisb/work/qemu.git/tracepoints.h:24:2: error: function declaration isn?t a prototype [-Werror=strict-prototypes]
/home/hollisb/work/qemu.git/tracepoints.h: In function ?__tracepoint_cb_qemu_tb_hash___flushall?:
/home/hollisb/work/qemu.git/tracepoints.h:24:2: error: old-style function definition [-Werror=old-style-definition]
cc1: all warnings being treated as errors
The preprocessed code looks like so:
extern struct
# 129 "/usr/local/include/lttng/tracepoint.h" 3
tracepoint
# 24 "/home/hollisb/work/qemu.git/tracepoints.h"
__tracepoint_qemu_tb_hash___flushall
# 19 "/home/hollisb/work/qemu.git/tracepoints.h"
; static __attribute__ (( always_inline )) __inline__ void
__tracepoint_cb_qemu_tb_hash___flushall
# 19 "/home/hollisb/work/qemu.git/tracepoints.h"
() { struct tracepoint_probe *__tp_probe; if (!tracepoint_dlopen.rcu_read_lock_sym_bp) return; tracepoint_dlopen.rcu_read_lock_sym_bp(); __tp_probe = ({ typeof(__tracepoint_qemu_tb_hash___flushall.probes) _________p1 = ((typeof(__tracepoint_qemu_tb_hash___flushall.probes)) (tracepoint_dlopen.rcu_dereference_sym_bp(((void *) (__tracepoint_qemu_tb_hash___flushall.probes))))); (_________p1); }); if (__builtin_expect(!!(!__tp_probe), 0)) goto end; do { void *__tp_cb = __tp_probe->func; void *__tp_data = __tp_probe->data; ((void (*)(void *__tp_data)) (__tp_cb)) (__tp_data); } while ((++__tp_probe)->func); end: tracepoint_dlopen.rcu_read_unlock_sym_bp(); } static __attribute__ (( always_inline )) __inline__ void
I believe the problem comes from -Werror=old-style-definition not liking
that empty "()", i.e. tracepoint_cb_qemu_tb_hash___flushall() { ... }.
The following patch seems to work for me; is there a reason it isn't
already written this way?
diff --git a/include/lttng/tracepoint.h b/include/lttng/tracepoint.h
index 4b773bb..60d8c73 100644
--- a/include/lttng/tracepoint.h
+++ b/include/lttng/tracepoint.h
@@ -88,7 +88,7 @@ extern "C" {
#define _TP_EXDATA_VAR20(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) __tp_data,b,d,f,h,j,l,n,p,r,t
/* _TP_EXPROTO* extract tuples of type, var */
-#define _TP_EXPROTO0()
+#define _TP_EXPROTO0() void
#define _TP_EXPROTO2(a,b) a b
#define _TP_EXPROTO4(a,b,c,d) a b,c d
#define _TP_EXPROTO6(a,b,c,d,e,f) a b,c d,e f
If this is OK, I'm happy to resend as a proper patch.
--
Hollis Blanchard
Mentor Graphics, Embedded Systems Division
next reply other threads:[~2012-06-08 18:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-08 18:26 Hollis Blanchard [this message]
2012-06-11 13:52 ` Mathieu Desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FD243CF.60104@mentor.com \
--to=hollis_blanchard@mentor.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox