[PATCH] D50028: [analyzer] CStringChecker: Fix argument highlighting.
Phabricator via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 30 16:45:00 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rC338333: [analyzer] CStringChecker: Remember to highlight the argument expression range. (authored by dergachev, committed by ).
Repository:
rC Clang
https://reviews.llvm.org/D50028
Files:
lib/StaticAnalyzer/Checkers/CStringChecker.cpp
test/Analysis/cstring-ranges.c
Index: test/Analysis/cstring-ranges.c
===================================================================
--- test/Analysis/cstring-ranges.c
+++ test/Analysis/cstring-ranges.c
@@ -0,0 +1,15 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=unix.cstring -analyzer-output=text %s 2>&1 | FileCheck %s
+
+// This test verifies argument source range highlighting.
+// Otherwise we've no idea which of the arguments is null.
+
+char *strcpy(char *, const char *);
+
+void foo() {
+ char *a = 0, *b = 0;
+ strcpy(a, b);
+}
+
+// CHECK: warning: Null pointer argument in call to string copy function
+// CHECK-NEXT: strcpy(a, b);
+// CHECK-NEXT: ^ ~
Index: lib/StaticAnalyzer/Checkers/CStringChecker.cpp
===================================================================
--- lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -552,6 +552,7 @@
BuiltinBug *BT = static_cast<BuiltinBug *>(BT_Null.get());
auto Report = llvm::make_unique<BugReport>(*BT, WarningMsg, N);
+ Report->addRange(S->getSourceRange());
bugreporter::trackNullOrUndefValue(N, S, *Report);
C.emitReport(std::move(Report));
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50028.158132.patch
Type: text/x-patch
Size: 1170 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180730/7de48d92/attachment.bin>
More information about the cfe-commits
mailing list