From: Alexander Kornienko Date: Fri, 1 Feb 2013 15:39:20 +0000 (+0000) Subject: Fixed segmentation fault when a CFGBlock has NULL successor. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=527fa4f24fa885c063730b0c2956019dc0f35a95;p=platform%2Fupstream%2Fllvm.git Fixed segmentation fault when a CFGBlock has NULL successor. llvm-svn: 174182 --- diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index b362239..5443edb 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -714,7 +714,7 @@ namespace { for (CFGBlock::const_succ_iterator I = P->succ_begin(), E = P->succ_end(); I != E; ++I) { - if (ReachableBlocks.insert(*I)) + if (*I && ReachableBlocks.insert(*I)) BlockQueue.push_back(*I); } } diff --git a/clang/test/SemaCXX/switch-implicit-fallthrough.cpp b/clang/test/SemaCXX/switch-implicit-fallthrough.cpp index 912b21e..bc94c9e 100644 --- a/clang/test/SemaCXX/switch-implicit-fallthrough.cpp +++ b/clang/test/SemaCXX/switch-implicit-fallthrough.cpp @@ -172,6 +172,11 @@ int fallthrough_macro1(int n) { return n; } +void fallthrough_cfgblock_with_null_successor(int x) { + (x && "") ? (void)(0) : (void)(1); + switch (x) {} +} + int fallthrough_position(int n) { switch (n) { [[clang::fallthrough]]; // expected-warning{{fallthrough annotation in unreachable code}}