[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_oper.tc,1.21,1.22
From: |
Gopal.V <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_oper.tc,1.21,1.22 |
Date: |
Fri, 08 Nov 2002 06:51:27 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv17899/cscc/csharp
Modified Files:
cs_oper.tc
Log Message:
Constants are coerced before operator lookup
Index: cs_oper.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_oper.tc,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -r1.21 -r1.22
*** cs_oper.tc 5 Nov 2002 09:55:51 -0000 1.21
--- cs_oper.tc 8 Nov 2002 11:51:23 -0000 1.22
***************
*** 121,124 ****
--- 121,140 ----
}
+ /* try constant coercion before operator lookup */
+ if(ILCanCoerceNodeKind(info,node->expr1,CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr1,&(node->expr1),CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value1,CSSemGetType(value2));
+ }
+ else if(ILCanCoerceNodeKind(info,node->expr2,CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr2,&(node->expr2),CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value2,CSSemGetType(value1));
+ }
+
/* Look for a builtin operator */
oper = ILFindBinaryOperator(table, CSSemGetType(value1),
***************
*** 313,316 ****
--- 329,348 ----
}
+ /* try constant coercion first */
+ if(ILCanCoerceNodeKind(info,node->expr1,CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr1,&(node->expr1),CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value1,CSSemGetType(value2));
+ }
+ else if(ILCanCoerceNodeKind(info,node->expr2,CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr2,&(node->expr2),CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value2,CSSemGetType(value1));
+ }
+
/* Look for a builtin operator */
oper = ILFindBinaryOperator
***************
*** 449,452 ****
--- 481,500 ----
{
goto error;
+ }
+
+ /* try constant coercion first */
+ if(ILCanCoerceNodeKind(info,node->expr1,CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr1,&(node->expr1),CSSemGetType(value1),
+ CSSemGetType(value2),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value1,CSSemGetType(value2));
+ }
+ else if(ILCanCoerceNodeKind(info,node->expr2,CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT))
+ {
+
ILCoerceKind(info,node->expr2,&(node->expr2),CSSemGetType(value2),
+ CSSemGetType(value1),IL_CONVERT_CONSTANT);
+ CSSemSetRValue(value2,CSSemGetType(value1));
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_oper.tc,1.21,1.22,
Gopal.V <address@hidden> <=