aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineCopyPropagation.cpp
diff options
context:
space:
mode:
authorEtienne Bergeron <etienneb@google.com>2016-04-21 17:19:36 +0000
committerEtienne Bergeron <etienneb@google.com>2016-04-21 17:19:36 +0000
commitbae829ede5b164eb7bf139167846fb06b60afe27 (patch)
treec77530b6d7930800d6a8ab67d072ae4dd2829aa4 /llvm/lib/CodeGen/MachineCopyPropagation.cpp
parent1a299eab32acd4858e8651550b185be0767f7c70 (diff)
downloadllvm-bae829ede5b164eb7bf139167846fb06b60afe27.zip
llvm-bae829ede5b164eb7bf139167846fb06b60afe27.tar.gz
llvm-bae829ede5b164eb7bf139167846fb06b60afe27.tar.bz2
[clang-tidy] Add new checker for comparison with runtime string functions.
Summary: This checker is validating suspicious usage of string compare functions. Example: ``` if (strcmp(...)) // Implicitly compare to zero if (!strcmp(...)) // Won't warn if (strcmp(...) != 0) // Won't warn ``` This patch was checked over large amount of code. There is three checks: [*] Implicit comparator to zero (coding-style, many warnings found), [*] Suspicious implicit cast to non-integral (bugs!?, almost none found), [*] Comparison to suspicious constant (bugs!?, found two cases), Example: [[https://github.com/kylepjohnson/sigma/blob/master/sigma/native-installers/debian/dependencies/files/opt/sigma/E/HEURISTICS/che_to_precgen.c | https://github.com/kylepjohnson/sigma/blob/master/sigma/native-installers/debian/dependencies/files/opt/sigma/E/HEURISTICS/che_to_precgen.c]] ``` else if(strcmp(id, "select") == 0) { array->array[i].key1 = 25; } else if(strcmp(id, "sk") == 28) // BUG!? { array->array[i].key1 = 20; } ``` Reviewers: alexfh Subscribers: Eugene.Zelenko, cfe-commits Differential Revision: http://reviews.llvm.org/D18703 llvm-svn: 267009
Diffstat (limited to 'llvm/lib/CodeGen/MachineCopyPropagation.cpp')
0 files changed, 0 insertions, 0 deletions