From: Zhongxing Xu Date: Wed, 24 Feb 2010 02:19:28 +0000 (+0000) Subject: Always add CallExpr as block-level expression. Inline-based interprocedural X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=910716678e8af41432f3dfb16b340168597f8c45;p=clang Always add CallExpr as block-level expression. Inline-based interprocedural analysis needs this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97014 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index 5b8aeae5d1..d4f64bc178 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -589,7 +589,7 @@ CFGBlock *CFGBuilder::VisitCallExpr(CallExpr *C, AddStmtChoice asc) { AddEHEdge = false; if (!NoReturn && !AddEHEdge) - return VisitStmt(C, asc); + return VisitStmt(C, AddStmtChoice::AlwaysAdd); if (Block) { Succ = Block; diff --git a/test/Sema/warn-unreachable.c b/test/Sema/warn-unreachable.c index 1eef637133..10ed6961a5 100644 --- a/test/Sema/warn-unreachable.c +++ b/test/Sema/warn-unreachable.c @@ -35,8 +35,8 @@ void test2() { dead(); // expected-warning {{will never be executed}} case 3: - live() - + // expected-warning {{will never be executed}} + live() // expected-warning {{will never be executed}} + + halt(); dead(); diff --git a/test/SemaCXX/warn-unreachable.cpp b/test/SemaCXX/warn-unreachable.cpp index a7ed91d6e2..01b36de571 100644 --- a/test/SemaCXX/warn-unreachable.cpp +++ b/test/SemaCXX/warn-unreachable.cpp @@ -52,8 +52,8 @@ void test4() { int mem; } s; S &foor(); - halt(), foor() - .mem; // expected-warning {{will never be executed}} + halt(), foor()// expected-warning {{will never be executed}} + .mem; } void test5() {