[PATCH] D88900: check before accessing possibly null node
Ding Fei via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 6 07:33:27 PDT 2020
danix800 created this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
danix800 requested review of this revision.
Testcase: (main.cpp)
int foo(int i);
int main() {
int i = 1;
while (i-- >= 0) {
return 3 / foo(i);
}
}
run with
clang -cc1 -analyze -analyzer-checker=debug.DumpDominators main.cpp
triggers nullptr dereference.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D88900
Files:
clang/include/clang/Analysis/Analyses/Dominators.h
Index: clang/include/clang/Analysis/Analyses/Dominators.h
===================================================================
--- clang/include/clang/Analysis/Analyses/Dominators.h
+++ clang/include/clang/Analysis/Analyses/Dominators.h
@@ -101,7 +101,12 @@
"LLVM's Dominator tree builder uses nullpointers to signify the "
"virtual root!");
- DomTreeNode *IDom = DT.getNode(*I)->getIDom();
+ auto *Node = DT.getNode(*I);
+ if (Node == nullptr) {
+ continue;
+ }
+
+ DomTreeNode *IDom = Node->getIDom();
if (IDom && IDom->getBlock())
llvm::errs() << "(" << (*I)->getBlockID()
<< ","
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88900.296454.patch
Type: text/x-patch
Size: 682 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201006/46013fb1/attachment-0001.bin>
More information about the cfe-commits
mailing list