diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-02-24 02:19:28 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-02-24 02:19:28 +0000 |
commit | 910716678e8af41432f3dfb16b340168597f8c45 (patch) | |
tree | 1f94ef1189dbaef18efc1d130212b814523d9b5c | |
parent | 170ee0cb6066a4ca8c051c62e90ae7e4f6af7b0c (diff) |
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
-rw-r--r-- | lib/Analysis/CFG.cpp | 2 | ||||
-rw-r--r-- | test/Sema/warn-unreachable.c | 4 | ||||
-rw-r--r-- | test/SemaCXX/warn-unreachable.cpp | 4 |
3 files changed, 5 insertions, 5 deletions
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() { |