perf symbols: dso->name is an array, no need to check it against NULL 88/292588/1
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 13 Feb 2017 20:11:03 +0000 (17:11 -0300)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 9 May 2023 09:23:44 +0000 (18:23 +0900)
As it will always evaluate to 'true', as reported by clang:

  util/map.c:390:36: error: address of array 'map->dso->name' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
          if (map && map->dso && (map->dso->name || map->dso->long_name)) {
                                  ~~~~~~~~~~^~~~ ~~
  util/map.c:393:22: error: address of array 'map->dso->name' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
                  else if (map->dso->name)
                     ~~  ~~~~~~~~~~^~~~

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/n/tip-x8cu007cly40kfp8xnpi9kya@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
[sw0312.kim: backport upstream commit 5eae7d842510 to resolve gcc-12 build issue]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I475ce43b3563aac9846e47444ba1d029bd43659a

tools/perf/util/map.c
tools/perf/util/scripting-engines/trace-event-perl.c

index ab8ebfa..eb4f3c9 100644 (file)
@@ -388,10 +388,10 @@ size_t map__fprintf_dsoname(struct map *map, FILE *fp)
 {
        const char *dsoname = "[unknown]";
 
-       if (map && map->dso && (map->dso->name || map->dso->long_name)) {
+       if (map && map->dso) {
                if (symbol_conf.show_kernel_path && map->dso->long_name)
                        dsoname = map->dso->long_name;
-               else if (map->dso->name)
+               else
                        dsoname = map->dso->name;
        }
 
index e55a132..aa2eea1 100644 (file)
@@ -309,10 +309,10 @@ static SV *perl_process_callchain(struct perf_sample *sample,
                if (node->map) {
                        struct map *map = node->map;
                        const char *dsoname = "[unknown]";
-                       if (map && map->dso && (map->dso->name || map->dso->long_name)) {
+                       if (map && map->dso) {
                                if (symbol_conf.show_kernel_path && map->dso->long_name)
                                        dsoname = map->dso->long_name;
-                               else if (map->dso->name)
+                               else
                                        dsoname = map->dso->name;
                        }
                        if (!hv_stores(elem, "dso", newSVpv(dsoname,0))) {