summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaStmt.cpp
diff options
context:
space:
mode:
authorBruno Ricci <riccibrun@gmail.com>2018-10-29 16:12:37 +0000
committerBruno Ricci <riccibrun@gmail.com>2018-10-29 16:12:37 +0000
commite2806f857b772d2f15b39e95685a1c99bdb8aaa7 (patch)
treea5a238a0c54b7ebf90eb52a514b0780a270f6000 /clang/lib/Sema/SemaStmt.cpp
parente92567601b4b457d7f68a31ee21d2c2769c8de3b (diff)
downloadbcm5719-llvm-e2806f857b772d2f15b39e95685a1c99bdb8aaa7.tar.gz
bcm5719-llvm-e2806f857b772d2f15b39e95685a1c99bdb8aaa7.zip
[AST] Only store the needed data in SwitchStmt
Don't store the data for the init statement and condition variable if not needed. This cuts the size of SwitchStmt by up to 2 pointers. The order of the children is intentionally kept the same. Also use the newly available space in the bit-fields of Stmt to store the bit representing whether all enums have been covered instead of using a PointerIntPair. Differential Revision: https://reviews.llvm.org/D53714 Reviewed By: rjmccall llvm-svn: 345510
Diffstat (limited to 'clang/lib/Sema/SemaStmt.cpp')
-rw-r--r--clang/lib/Sema/SemaStmt.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp
index 67b5a84caf3..2018c874af5 100644
--- a/clang/lib/Sema/SemaStmt.cpp
+++ b/clang/lib/Sema/SemaStmt.cpp
@@ -727,8 +727,7 @@ StmtResult Sema::ActOnStartOfSwitchStmt(SourceLocation SwitchLoc,
setFunctionHasBranchIntoScope();
- SwitchStmt *SS = new (Context)
- SwitchStmt(Context, InitStmt, Cond.get().first, CondExpr);
+ auto *SS = SwitchStmt::Create(Context, InitStmt, Cond.get().first, CondExpr);
getCurFunction()->SwitchStack.push_back(
FunctionScopeInfo::SwitchInfo(SS, false));
return SS;
OpenPOWER on IntegriCloud