From 2677ea871a25aa79f9db360f6ed10584c02267ad Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Sat, 15 Mar 2008 07:45:02 +0000 Subject: [PATCH] Small bug fix in CFG construction: the active block for LabelStmts comes from "Block", not the CFGBlock* returned from visiting its subexpression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48392 91177308-0d34-0410-b5e6-96231b3b80d8 --- AST/CFG.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AST/CFG.cpp b/AST/CFG.cpp index 9bafb05daf..e2aba6b3ff 100644 --- a/AST/CFG.cpp +++ b/AST/CFG.cpp @@ -577,7 +577,8 @@ CFGBlock* CFGBuilder::VisitReturnStmt(ReturnStmt* R) { CFGBlock* CFGBuilder::VisitLabelStmt(LabelStmt* L) { // Get the block of the labeled statement. Add it to our map. - CFGBlock* LabelBlock = Visit(L->getSubStmt()); + Visit(L->getSubStmt()); + CFGBlock* LabelBlock = Block; if (!LabelBlock) // This can happen when the body is empty, i.e. LabelBlock=createBlock(); // scopes that only contains NullStmts. @@ -970,7 +971,7 @@ CFGBlock* CFGBuilder::VisitCaseStmt(CaseStmt* S) { // This block is now the implicit successor of other blocks. Succ = CaseBlock; - return CaseBlock; + return CaseBlock; } CFGBlock* CFGBuilder::VisitDefaultStmt(DefaultStmt* S) { -- 2.40.0