[analyzer] Match more patterns in bugreporter::getDerefExpr() API.
authorArtem Dergachev <artem.dergachev@gmail.com>
Wed, 27 Sep 2017 09:50:45 +0000 (09:50 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Wed, 27 Sep 2017 09:50:45 +0000 (09:50 +0000)
commit8c80061535d925df462e05aed212091ff7dcce6b
tree909ceb5b6fd0e723ca113a944fa4d8f0029cb81e
parent92c21d54a4c21c6c1cbffddf297cd619ac325d02
[analyzer] Match more patterns in bugreporter::getDerefExpr() API.

This function can now track null pointer through simple pointer arithmetic,
such as '*&*(p + 2)' => 'p' and so on, displaying intermediate diagnostic pieces
for the user to understand where the null pointer is coming from.

Differential Revision: https://reviews.llvm.org/D37025

llvm-svn: 314290
clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
clang/test/Analysis/inlining/inline-defensive-checks.c
clang/test/Analysis/null-deref-path-notes.c
clang/test/Analysis/nullptr.cpp