dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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);
  }
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]