Messages in this thread Patch in this message | | | Date | Mon, 13 Feb 2017 12:14:18 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] building libtraceevent with clang |
| |
On Mon, 13 Feb 2017 13:26:22 -0300 Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c > > index 65984f1c2974..2009cb7d9675 100644 > > --- a/tools/lib/traceevent/kbuffer-parse.c > > +++ b/tools/lib/traceevent/kbuffer-parse.c > > @@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct kbuffer *kbuf) > > extend += delta; > > delta = extend; > > ptr += 4; > > + lenght = 0; > > ouch, 'length' :-) > > clang provides a really nice error message: > > kbuffer-parse.c:318:3: error: use of undeclared identifier 'lenght'; did you mean 'length'? > lenght = 0; > ^~~~~~ > length > kbuffer-parse.c:297:15: note: 'length' declared here > unsigned int length; > ^ > 1 error generated. > > I only had to test compile it :-) > > > break; > > > > case OLD_RINGBUF_TYPE_TIME_STAMP: > >
OK, I pulled the patch into git, and made it official ;-) I also fixed the "lenght" in the change log too.
Could you use this instead.
-- Steve
From 4f060a0577156acfdc0524a634f4afcc1657c929 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> Date: Mon, 13 Feb 2017 12:11:44 -0500 Subject: [PATCH] tools lib traceevent: Initialize lenght on OLD_RING_BUFFER_TYPE_TIME_STAMP
A undefined value was being used for the OLD_RING_BUFFER_TYPE_TIME_STAMP case entry, as the 'length' variable was not being initialized, fix it.
Caught by the reporter when building tools/perf/ using clang, which emmitted this warning:
kbuffer-parse.c:312:7: warning: variable 'length' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized] case OLD_RINGBUF_TYPE_TIME_EXTEND: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ kbuffer-parse.c:339:29: note: uninitialized use occurs here kbuf->next = kbuf->index + length; ^~~~~~ kbuffer-parse.c:297:21: note: initialize the variable 'length' to silence this warning unsigned int length; ^ = 0
Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/20170210141408.5eeb6e91@gandalf.local.home Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- tools/lib/traceevent/kbuffer-parse.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/lib/traceevent/kbuffer-parse.c b/tools/lib/traceevent/kbuffer-parse.c index 65984f1..c94e364 100644 --- a/tools/lib/traceevent/kbuffer-parse.c +++ b/tools/lib/traceevent/kbuffer-parse.c @@ -315,6 +315,7 @@ static unsigned int old_update_pointers(struct kbuffer *kbuf) extend += delta; delta = extend; ptr += 4; + length = 0; break; case OLD_RINGBUF_TYPE_TIME_STAMP: -- 2.9.3
| |