[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c
Chris Lattner
lattner at cs.uiuc.edu
Sat Nov 27 11:45:28 PST 2004
Changes in directory llvm-gcc/gcc:
llvm-expand.c updated: 1.61 -> 1.62
---
Log message:
Fix test/Regression/CFrontend/2004-11-27-InvalidConstantExpr.c and PR424: http://llvm.cs.uiuc.edu/PR424
---
Diffs of the changes: (+6 -0)
Index: llvm-gcc/gcc/llvm-expand.c
diff -u llvm-gcc/gcc/llvm-expand.c:1.61 llvm-gcc/gcc/llvm-expand.c:1.62
--- llvm-gcc/gcc/llvm-expand.c:1.61 Wed Nov 24 12:53:53 2004
+++ llvm-gcc/gcc/llvm-expand.c Sat Nov 27 13:45:12 2004
@@ -99,6 +99,9 @@
int AllOperandsConstant = 1; /* Scan for non-constant operands */
unsigned i;
+ if (I->Opcode == O_Sub)
+ assert(D2V(I)->Ty->ID != PointerTyID);
+
if (I->Opcode == O_Shl || I->Opcode == O_Shr) {
assert(llvm_type_is_integral(I->Operands[0]->Ty) &&
I->Operands[0]->Ty != BoolTy);
@@ -6096,6 +6099,9 @@
case NEGATE_EXPR: /* -A === 0-A */
op1 = llvm_expand_expr(Fn, TREE_OPERAND(exp, 0), 0);
+ if (op1->Ty->ID == PointerTyID)
+ op1 = cast_if_type_not_equal(Fn, op1, IntPtrTy);
+
if (!llvm_type_is_fp(op1->Ty))
op0 = llvm_constant_get_null(op1->Ty);
else
More information about the llvm-commits
mailing list