[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