[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.22,1.23
From: |
Gopal.V <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_oper.tc,1.22,1.23 |
Date: |
Fri, 08 Nov 2002 13:06:25 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv3570/cscc/csharp
Modified Files:
cs_oper.tc
Log Message:
remove constant coercion for "<<" and ">>"
Index: cs_oper.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_oper.tc,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -r1.22 -r1.23
*** cs_oper.tc 8 Nov 2002 11:51:23 -0000 1.22
--- cs_oper.tc 8 Nov 2002 18:06:23 -0000 1.23
***************
*** 102,106 ****
static CSSemValue BinarySem(ILGenInfo *info, ILNode_BinaryExpression *node,
ILNode **parent, const
ILOperator *table,
! const char *name, const char
*errorName)
{
const ILOperator *oper;
--- 102,107 ----
static CSSemValue BinarySem(ILGenInfo *info, ILNode_BinaryExpression *node,
ILNode **parent, const
ILOperator *table,
! const char *name, const char
*errorName,
! int canCoerce)
{
const ILOperator *oper;
***************
*** 122,126 ****
/* try constant coercion before operator lookup */
! if(ILCanCoerceNodeKind(info,node->expr1,CSSemGetType(value1),
CSSemGetType(value2),IL_CONVERT_CONSTANT))
{
--- 123,127 ----
/* try constant coercion before operator lookup */
! if(canCoerce &&
ILCanCoerceNodeKind(info,node->expr1,CSSemGetType(value1),
CSSemGetType(value2),IL_CONVERT_CONSTANT))
{
***************
*** 129,134 ****
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),
--- 130,136 ----
CSSemSetRValue(value1,CSSemGetType(value2));
}
! else if(canCoerce &&
!
ILCanCoerceNodeKind(info,node->expr2,CSSemGetType(value2),
! CSSemGetType(value1),IL_CONVERT_CONSTANT))
{
ILCoerceKind(info,node->expr2,&(node->expr2),CSSemGetType(value2),
***************
*** 176,179 ****
--- 178,186 ----
}
+ if(!canCoerce)
+ {
+ goto error;
+ }
+
/* As a last resort try coercion */
if(ILCanCoerceNode(info, node->expr1, CSSemGetType(value1),
***************
*** 598,602 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Mul, "op_Multiply", "*");
}
--- 605,609 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Mul, "op_Multiply",
"*",1);
}
***************
*** 607,611 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Div, "op_Division", "/");
}
--- 614,618 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Div, "op_Division",
"/",1);
}
***************
*** 616,620 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Rem, "op_Modulus", "%");
}
--- 623,627 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Rem, "op_Modulus", "%",1);
}
***************
*** 643,647 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_And, "op_BitwiseAnd",
"&");
}
--- 650,654 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_And, "op_BitwiseAnd",
"&",1);
}
***************
*** 652,656 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Xor, "op_ExclusiveOr",
"^");
}
--- 659,663 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Xor, "op_ExclusiveOr",
"^",1);
}
***************
*** 661,665 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Or, "op_BitwiseOr", "|");
}
--- 668,672 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Or, "op_BitwiseOr",
"|",1);
}
***************
*** 679,683 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shl, "op_LeftShift",
"<<");
}
--- 686,690 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shl, "op_LeftShift",
"<<",0);
}
***************
*** 688,692 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shr, "op_RightShift",
">>");
}
--- 695,699 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shr, "op_RightShift",
">>",0);
}
***************
*** 699,703 ****
still need to include this case for completeness sake */
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shr, "op_RightShift",
">>");
}
--- 706,710 ----
still need to include this case for completeness sake */
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Shr, "op_RightShift",
">>",0);
}
***************
*** 1767,1771 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Lt, "op_LessThan", "<");
}
--- 1774,1778 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Lt, "op_LessThan", "<",1);
}
***************
*** 1776,1780 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Le, "op_LessThanOrEqual",
"<=");
}
--- 1783,1787 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Le, "op_LessThanOrEqual",
"<=",1);
}
***************
*** 1785,1789 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Gt, "op_GreaterThan",
">");
}
--- 1792,1796 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Gt, "op_GreaterThan",
">",1);
}
***************
*** 1794,1798 ****
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Ge,
"op_GreaterThanOrEqual", ">=");
}
--- 1801,1805 ----
{
return BinarySem(info, (ILNode_BinaryExpression *)node,
! parent, ILOp_Ge,
"op_GreaterThanOrEqual", ">=",1);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_oper.tc,1.22,1.23,
Gopal.V <address@hidden> <=