[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ChangeLog cscc/csharp/cs_oper.tc
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ChangeLog cscc/csharp/cs_oper.tc |
Date: |
Tue, 06 Jan 2009 15:35:21 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Changes by: Klaus Treichel <ktreichel> 09/01/06 15:35:21
Modified files:
. : ChangeLog
cscc/csharp : cs_oper.tc
Log message:
Handle pointer operations in += and -= expressions.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3600&r2=1.3601
http://cvs.savannah.gnu.org/viewcvs/pnet/cscc/csharp/cs_oper.tc?cvsroot=dotgnu-pnet&r1=1.55&r2=1.56
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3600
retrieving revision 1.3601
diff -u -b -r1.3600 -r1.3601
--- ChangeLog 3 Jan 2009 14:15:20 -0000 1.3600
+++ ChangeLog 6 Jan 2009 15:35:20 -0000 1.3601
@@ -1,3 +1,8 @@
+2009-01-06 Klaus Treichel <address@hidden>
+
+ * cscc/csharp/cs_oper.tc (AssignSem): Handle operations with pointers
+ for the += and -= expressions.
+
2009-01-03 Klaus Treichel <address@hidden>
* engine/int_proto.h, engine/int_table.c: Regenerate
Index: cscc/csharp/cs_oper.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_oper.tc,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- cscc/csharp/cs_oper.tc 2 Jan 2009 14:33:06 -0000 1.55
+++ cscc/csharp/cs_oper.tc 6 Jan 2009 15:35:21 -0000 1.56
@@ -1319,6 +1319,30 @@
}
}
+ /* Is this a pointer expression? */
+ if(ILType_IsPointer(CSSemGetType(value1)) &&
+ (yyisa(node, ILNode_Add) || yyisa(node, ILNode_Sub)))
+ {
+ ILType *resultType;
+
+ resultType = ToNumericType(info, CSSemGetType(value2));
+ if(resultType)
+ {
+ if(resultType == ILType_UInt32 || resultType ==
ILType_UInt64)
+ {
+ resultType = ILType_UInt;
+ }
+ else
+ {
+ resultType = ILType_Int;
+ }
+ PointerOp(info, parent, &(node->expr1),
CSSemGetType(value1),
+ &(node->expr2), CSSemGetType(value2),
resultType);
+ CSSemSetRValue(value1, CSSemGetType(value1));
+ return value1;
+ }
+ }
+
/* Try again, this time coercing value2's type to value1's type */
if (ILCanCoerceNode(info, node->expr2,
CSSemGetType(value2),
CSSemGetType(value1),1))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog cscc/csharp/cs_oper.tc,
Klaus Treichel <=