[prev in list] [next in list] [prev in thread] [next in thread]
List: cfe-commits
Subject: [cfe-commits] r44453 - in /cfe/trunk: CodeGen/CGStmt.cpp
From: sabre () nondot ! org (Chris Lattner)
Date: 2007-11-30 17:44:58
Message-ID: 200711301744.lAUHiwj8017794 () zion ! cs ! uiuc ! edu
[Download RAW message or body]
Author: lattner
Date: Fri Nov 30 11:44:57 2007
New Revision: 44453
URL: http://llvm.org/viewvc/llvm-project?rev=44453&view=rev
Log:
Support fully general case expressions, patch by Sanghyeon Seo!
Modified:
cfe/trunk/CodeGen/CGStmt.cpp
cfe/trunk/test/CodeGen/switch.c
Modified: cfe/trunk/CodeGen/CGStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CodeGen/CGStmt.cpp?rev=44453&r1=44452&r2=44453&view=diff
==============================================================================
--- cfe/trunk/CodeGen/CGStmt.cpp (original)
+++ cfe/trunk/CodeGen/CGStmt.cpp Fri Nov 30 11:44:57 2007
@@ -444,7 +444,9 @@
StartBlock("sw.bb");
llvm::BasicBlock *CaseDest = Builder.GetInsertBlock();
- llvm::ConstantInt *LV = cast<llvm::ConstantInt>(EmitScalarExpr(S.getLHS()));
+ llvm::APSInt CaseVal(32);
+ S.getLHS()->isIntegerConstantExpr(CaseVal, getContext());
+ llvm::ConstantInt *LV = llvm::ConstantInt::get(CaseVal);
SwitchInsn->addCase(LV, CaseDest);
EmitStmt(S.getSubStmt());
}
Modified: cfe/trunk/test/CodeGen/switch.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/switch.c?rev=44453&r1=44452&r2=44453&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/switch.c (original)
+++ cfe/trunk/test/CodeGen/switch.c Fri Nov 30 11:44:57 2007
@@ -3,6 +3,8 @@
int foo(int i) {
int j = 0;
switch (i) {
+ case -1:
+ j = 1; break;
case 1 :
j = 2; break;
case 2:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic