From: Fariborz Jahanian Date: Tue, 17 Jan 2012 23:55:19 +0000 (+0000) Subject: output body of folded case again. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=303b4f946470a054cea8f91af54008aeb3c09507;p=clang output body of folded case again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148361 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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