mirror of https://github.com/torvalds/linux.git
clang warns:
util/block-info.c:298:18: error: result of comparison against a string
literal is unspecified (use an explicit string comparison function
instead) [-Werror,-Wstring-compare]
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
^ ~~~~~~~~~~~~~~~
util/block-info.c:298:51: error: result of comparison against a string
literal is unspecified (use an explicit string comparison function
instead) [-Werror,-Wstring-compare]
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
^ ~~~~~~~~~~~~~~~
util/block-info.c:298:18: error: result of comparison against a string
literal is unspecified (use an explicit string
comparison function instead) [-Werror,-Wstring-compare]
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
^ ~~~~~~~~~~~~~~~
util/block-info.c:298:51: error: result of comparison against a string
literal is unspecified (use an explicit string comparison function
instead) [-Werror,-Wstring-compare]
if ((start_line != SRCLINE_UNKNOWN) && (end_line != SRCLINE_UNKNOWN)) {
^ ~~~~~~~~~~~~~~~
util/map.c:434:15: error: result of comparison against a string literal
is unspecified (use an explicit string comparison function instead)
[-Werror,-Wstring-compare]
if (srcline != SRCLINE_UNKNOWN)
^ ~~~~~~~~~~~~~~~
Reviewer Notes:
Looks good to me. Some more context:
https://clang.llvm.org/docs/DiagnosticsReference.html#wstring-compare
The spec says:
J.1 Unspecified behavior
The following are unspecified:
.. Whether two string literals result in distinct arrays (6.4.5).
Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Changbin Du <changbin.du@intel.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Keeping <john@metanate.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: clang-built-linux@googlegroups.com
Link: https://github.com/ClangBuiltLinux/linux/issues/900
Link: http://lore.kernel.org/lkml/20200223193456.25291-1-nick.desaulniers@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
||
|---|---|---|
| .. | ||
| c++ | ||
| cs-etm-decoder | ||
| include | ||
| intel-pt-decoder | ||
| libunwind | ||
| scripting-engines | ||
| Build | ||
| PERF-VERSION-GEN | ||
| affinity.c | ||
| affinity.h | ||
| annotate.c | ||
| annotate.h | ||
| archinsn.h | ||
| arm-spe-pkt-decoder.c | ||
| arm-spe-pkt-decoder.h | ||
| arm-spe.c | ||
| arm-spe.h | ||
| auxtrace.c | ||
| auxtrace.h | ||
| block-info.c | ||
| block-info.h | ||
| block-range.c | ||
| block-range.h | ||
| bpf-event.c | ||
| bpf-event.h | ||
| bpf-loader.c | ||
| bpf-loader.h | ||
| bpf-prologue.c | ||
| bpf-prologue.h | ||
| bpf_map.c | ||
| bpf_map.h | ||
| branch.c | ||
| branch.h | ||
| build-id.c | ||
| build-id.h | ||
| cache.h | ||
| cacheline.c | ||
| cacheline.h | ||
| call-path.c | ||
| call-path.h | ||
| callchain.c | ||
| callchain.h | ||
| cap.c | ||
| cap.h | ||
| cgroup.c | ||
| cgroup.h | ||
| cloexec.c | ||
| cloexec.h | ||
| color.c | ||
| color.h | ||
| color_config.c | ||
| comm.c | ||
| comm.h | ||
| compress.h | ||
| config.c | ||
| config.h | ||
| copyfile.c | ||
| copyfile.h | ||
| counts.c | ||
| counts.h | ||
| cpu-set-sched.h | ||
| cpumap.c | ||
| cpumap.h | ||
| cputopo.c | ||
| cputopo.h | ||
| cs-etm.c | ||
| cs-etm.h | ||
| data-convert-bt.c | ||
| data-convert-bt.h | ||
| data-convert.h | ||
| data.c | ||
| data.h | ||
| db-export.c | ||
| db-export.h | ||
| debug.c | ||
| debug.h | ||
| demangle-java.c | ||
| demangle-java.h | ||
| demangle-rust.c | ||
| demangle-rust.h | ||
| dso.c | ||
| dso.h | ||
| dsos.c | ||
| dsos.h | ||
| dump-insn.c | ||
| dump-insn.h | ||
| dwarf-aux.c | ||
| dwarf-aux.h | ||
| dwarf-regs.c | ||
| env.c | ||
| env.h | ||
| event.c | ||
| event.h | ||
| events_stats.h | ||
| evlist.c | ||
| evlist.h | ||
| evsel.c | ||
| evsel.h | ||
| evsel_config.h | ||
| evsel_fprintf.c | ||
| evsel_fprintf.h | ||
| evswitch.c | ||
| evswitch.h | ||
| expr.h | ||
| expr.y | ||
| find-map.c | ||
| fncache.c | ||
| fncache.h | ||
| genelf.c | ||
| genelf.h | ||
| genelf_debug.c | ||
| generate-cmdlist.sh | ||
| get_current_dir_name.c | ||
| get_current_dir_name.h | ||
| group.h | ||
| header.c | ||
| header.h | ||
| help-unknown-cmd.c | ||
| help-unknown-cmd.h | ||
| hist.c | ||
| hist.h | ||
| intel-bts.c | ||
| intel-bts.h | ||
| intel-pt.c | ||
| intel-pt.h | ||
| intlist.c | ||
| intlist.h | ||
| jit.h | ||
| jitdump.c | ||
| jitdump.h | ||
| kvm-stat.h | ||
| levenshtein.c | ||
| levenshtein.h | ||
| llvm-utils.c | ||
| llvm-utils.h | ||
| lzma.c | ||
| machine.c | ||
| machine.h | ||
| map.c | ||
| map.h | ||
| map_symbol.h | ||
| maps.h | ||
| mem-events.c | ||
| mem-events.h | ||
| mem2node.c | ||
| mem2node.h | ||
| memswap.c | ||
| memswap.h | ||
| metricgroup.c | ||
| metricgroup.h | ||
| mmap.c | ||
| mmap.h | ||
| namespaces.c | ||
| namespaces.h | ||
| ordered-events.c | ||
| ordered-events.h | ||
| parse-branch-options.c | ||
| parse-branch-options.h | ||
| parse-events.c | ||
| parse-events.h | ||
| parse-events.l | ||
| parse-events.y | ||
| parse-regs-options.c | ||
| parse-regs-options.h | ||
| path.c | ||
| path.h | ||
| perf-hooks-list.h | ||
| perf-hooks.c | ||
| perf-hooks.h | ||
| perf_event_attr_fprintf.c | ||
| perf_regs.c | ||
| perf_regs.h | ||
| pmu.c | ||
| pmu.h | ||
| pmu.l | ||
| pmu.y | ||
| print_binary.c | ||
| print_binary.h | ||
| probe-event.c | ||
| probe-event.h | ||
| probe-file.c | ||
| probe-file.h | ||
| probe-finder.c | ||
| probe-finder.h | ||
| pstack.c | ||
| pstack.h | ||
| python-ext-sources | ||
| python.c | ||
| rb_resort.h | ||
| rblist.c | ||
| rblist.h | ||
| record.c | ||
| record.h | ||
| rlimit.c | ||
| rlimit.h | ||
| rwsem.c | ||
| rwsem.h | ||
| s390-cpumcf-kernel.h | ||
| s390-cpumsf-kernel.h | ||
| s390-cpumsf.c | ||
| s390-cpumsf.h | ||
| s390-sample-raw.c | ||
| sample-raw.c | ||
| sample-raw.h | ||
| session.c | ||
| session.h | ||
| setns.c | ||
| setup.py | ||
| smt.c | ||
| smt.h | ||
| sort.c | ||
| sort.h | ||
| spark.c | ||
| spark.h | ||
| srccode.c | ||
| srccode.h | ||
| srcline.c | ||
| srcline.h | ||
| stat-display.c | ||
| stat-shadow.c | ||
| stat.c | ||
| stat.h | ||
| strbuf.c | ||
| strbuf.h | ||
| strfilter.c | ||
| strfilter.h | ||
| string.c | ||
| string2.h | ||
| strlist.c | ||
| strlist.h | ||
| svghelper.c | ||
| svghelper.h | ||
| symbol-elf.c | ||
| symbol-minimal.c | ||
| symbol.c | ||
| symbol.h | ||
| symbol_conf.h | ||
| symbol_fprintf.c | ||
| symsrc.h | ||
| synthetic-events.c | ||
| synthetic-events.h | ||
| syscalltbl.c | ||
| syscalltbl.h | ||
| target.c | ||
| target.h | ||
| term.c | ||
| term.h | ||
| thread-stack.c | ||
| thread-stack.h | ||
| thread.c | ||
| thread.h | ||
| thread_map.c | ||
| thread_map.h | ||
| time-utils.c | ||
| time-utils.h | ||
| tool.h | ||
| top.c | ||
| top.h | ||
| trace-event-info.c | ||
| trace-event-parse.c | ||
| trace-event-read.c | ||
| trace-event-scripting.c | ||
| trace-event.c | ||
| trace-event.h | ||
| trigger.h | ||
| tsc.c | ||
| tsc.h | ||
| units.c | ||
| units.h | ||
| unwind-libdw.c | ||
| unwind-libdw.h | ||
| unwind-libunwind-local.c | ||
| unwind-libunwind.c | ||
| unwind.h | ||
| usage.c | ||
| util.c | ||
| util.h | ||
| values.c | ||
| values.h | ||
| vdso.c | ||
| vdso.h | ||
| xyarray.c | ||
| zlib.c | ||
| zstd.c | ||