aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-02-24 02:19:28 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-02-24 02:19:28 +0000
commit910716678e8af41432f3dfb16b340168597f8c45 (patch)
tree1f94ef1189dbaef18efc1d130212b814523d9b5c
parent170ee0cb6066a4ca8c051c62e90ae7e4f6af7b0c (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.cpp2
-rw-r--r--test/Sema/warn-unreachable.c4
-rw-r--r--test/SemaCXX/warn-unreachable.cpp4
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() {