diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-01-17 23:55:19 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-01-17 23:55:19 +0000 |
commit | 303b4f946470a054cea8f91af54008aeb3c09507 (patch) | |
tree | 43b0e7c697ed582da6340e5b3ba9d248e85885d9 | |
parent | 985df1c1f2d0666a09bc03f3593929286b0dea65 (diff) |
output body of folded case again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148361 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGStmt.cpp | 4 | ||||
-rw-r--r-- | test/CodeGenCXX/switch-case-folding-2.cpp | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index c7a8cf6a7d..97755e3906 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -883,8 +883,10 @@ void CodeGenFunction::EmitCaseStmt(const CaseStmt &S) { // when we've constant-folded the switch, are emitting the constant case, // and part of the constant case includes another case statement. For // instance: switch (4) { case 4: do { case 5: } while (1); } - if (!SwitchInsn) + if (!SwitchInsn) { + EmitStmt(S.getSubStmt()); return; + } // Handle case ranges. if (S.getRHS()) { diff --git a/test/CodeGenCXX/switch-case-folding-2.cpp b/test/CodeGenCXX/switch-case-folding-2.cpp index e1e66cfa3b..7c0283fa2a 100644 --- a/test/CodeGenCXX/switch-case-folding-2.cpp +++ b/test/CodeGenCXX/switch-case-folding-2.cpp @@ -18,4 +18,4 @@ int main(void) { return test(5); } -// CHECK-NOT: call i32 (i8*, ...)* @printf( +// CHECK: call i32 (i8*, ...)* @_Z6printfPKcz |