diff dmd/expression.c @ 42:0b9b286b67b6 trunk

[svn r46] fix for shift operations added a simple opengl binding in demos
author lindquist
date Fri, 19 Oct 2007 15:16:11 +0200
parents 3cfcb944304e
children a9d29e9f1fed
line wrap: on
line diff
--- a/dmd/expression.c	Fri Oct 19 07:45:35 2007 +0200
+++ b/dmd/expression.c	Fri Oct 19 15:16:11 2007 +0200
@@ -7412,7 +7412,8 @@
     typeCombine(sc);
     e1->checkIntegral();
     e2 = e2->checkIntegral();
-    e2 = e2->castTo(sc, Type::tshiftcnt);
+    //e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
     return this;
 }
 
@@ -7440,7 +7441,8 @@
     typeCombine(sc);
     e1->checkIntegral();
     e2 = e2->checkIntegral();
-    e2 = e2->castTo(sc, Type::tshiftcnt);
+    //e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
     return this;
 }
 
@@ -7468,7 +7470,8 @@
     typeCombine(sc);
     e1->checkIntegral();
     e2 = e2->checkIntegral();
-    e2 = e2->castTo(sc, Type::tshiftcnt);
+    //e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
     return this;
 }
 
@@ -7941,7 +7944,8 @@
 	e1 = e1->checkIntegral();
 	e2 = e2->checkIntegral();
 	e1 = e1->integralPromotions(sc);
-	e2 = e2->castTo(sc, Type::tshiftcnt);
+	//e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
 	type = e1->type;
     }
     return this;
@@ -7965,7 +7969,8 @@
 	e1 = e1->checkIntegral();
 	e2 = e2->checkIntegral();
 	e1 = e1->integralPromotions(sc);
-	e2 = e2->castTo(sc, Type::tshiftcnt);
+	//e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
 	type = e1->type;
     }
     return this;
@@ -7989,7 +7994,8 @@
 	e1 = e1->checkIntegral();
 	e2 = e2->checkIntegral();
 	e1 = e1->integralPromotions(sc);
-	e2 = e2->castTo(sc, Type::tshiftcnt);
+	//e2 = e2->castTo(sc, Type::tshiftcnt);
+    e2 = e2->castTo(sc, e1->type); // LLVMDC
 	type = e1->type;
     }
     return this;