提交 7d16c634 编写于 作者: N Namhyung Kim 提交者: Arnaldo Carvalho de Melo

perf tools: Fix build error due to zfree() cast

It failed to build perf on my ubuntu 10.04 box (gcc 4.4.3):

    CC       util/strlist.o
  cc1: warnings being treated as errors
  util/strlist.c: In function ‘str_node__delete’:
  util/strlist.c:42: error: dereferencing type-punned pointer will break strict-aliasing rules
  util/strlist.c:42: error: dereferencing type-punned pointer will break strict-aliasing rules
    CC       util/strfilter.o
  make: *** [util/strlist.o] Error 1

    CC       util/srcline.o
  cc1: warnings being treated as errors
  util/srcline.c: In function ‘addr2line_init’:
  util/srcline.c:132: error: dereferencing type-punned pointer will break strict-aliasing rules
  util/srcline.c:132: error: dereferencing type-punned pointer will break strict-aliasing rules
  util/srcline.c: In function ‘addr2line_cleanup’:
  util/srcline.c:143: error: dereferencing type-punned pointer will break strict-aliasing rules
  util/srcline.c:143: error: dereferencing type-punned pointer will break strict-aliasing rules
  make: *** [util/srcline.o] Error 1

It seems it only allows to remove 'const' qualifier.
Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1389276479-9047-1-git-send-email-namhyung@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 a6205a35
...@@ -129,7 +129,7 @@ static struct a2l_data *addr2line_init(const char *path) ...@@ -129,7 +129,7 @@ static struct a2l_data *addr2line_init(const char *path)
out: out:
if (a2l) { if (a2l) {
zfree((void **)&a2l->input); zfree((char **)&a2l->input);
free(a2l); free(a2l);
} }
bfd_close(abfd); bfd_close(abfd);
...@@ -140,7 +140,7 @@ static void addr2line_cleanup(struct a2l_data *a2l) ...@@ -140,7 +140,7 @@ static void addr2line_cleanup(struct a2l_data *a2l)
{ {
if (a2l->abfd) if (a2l->abfd)
bfd_close(a2l->abfd); bfd_close(a2l->abfd);
zfree((void **)&a2l->input); zfree((char **)&a2l->input);
zfree(&a2l->syms); zfree(&a2l->syms);
free(a2l); free(a2l);
} }
......
...@@ -39,7 +39,7 @@ struct rb_node *strlist__node_new(struct rblist *rblist, const void *entry) ...@@ -39,7 +39,7 @@ struct rb_node *strlist__node_new(struct rblist *rblist, const void *entry)
static void str_node__delete(struct str_node *snode, bool dupstr) static void str_node__delete(struct str_node *snode, bool dupstr)
{ {
if (dupstr) if (dupstr)
zfree((void **)&snode->s); zfree((char **)&snode->s);
free(snode); free(snode);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册