]> gcc.gnu.org Git - gcc.git/commitdiff
parse.y (patch_binop): Do a type conversion from signed to unsigned and then back...
authorAndrew Haley <aph@cygnus.com>
Mon, 18 Jan 1999 06:29:26 +0000 (06:29 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Mon, 18 Jan 1999 06:29:26 +0000 (06:29 +0000)
1999-01-18  Andrew Haley  <aph@cygnus.com>
* parse.y (patch_binop): Do a type conversion from signed to
unsigned and then back to signed when a ">>>" is found.

From-SVN: r24741

gcc/java/ChangeLog
gcc/java/parse.c
gcc/java/parse.y

index 1b85e3f7ab031b81ab85583b819dce00471a3e73..35bc1b3cd8c92c8de7837052595115dce36827a7 100644 (file)
@@ -1,3 +1,8 @@
+1999-01-18  Andrew Haley  <aph@cygnus.com>
+
+       * parse.y (patch_binop): Do a type conversion from signed to
+       unsigned and then back to signed when a ">>>" is found.
+
 Sun Jan 17 21:55:42 1999  Jeffrey A Law  (law@cygnus.com)
 
        * Makefile.in (zextract.o): Add dependencies.
index 8d7da905bef9ba87c64b04f6ba3975214d35cf9c..161c2eeada14f60d303e3221bb476c90a9e07ce3 100644 (file)
@@ -2250,7 +2250,7 @@ static const short yycheck[] = {     3,
 #define YYPURE 1
 
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/local/share/bison.simple"
+#line 3 "/local/aph/tx39/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -2443,7 +2443,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/local/share/bison.simple"
+#line 196 "/local/aph/tx39/share/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -4701,7 +4701,7 @@ case 492:
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/local/share/bison.simple"
+#line 498 "/local/aph/tx39/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -11599,8 +11599,13 @@ patch_binop (node, wfl_op1, wfl_op2)
       /* The >>> operator is a >> operating on unsigned quantities */
       if (code == URSHIFT_EXPR && ! flag_emit_class_files)
        {
-         op1 = convert (unsigned_type (prom_type), op1);
+          tree utype = unsigned_type (prom_type);
+          op1 = convert (utype, op1);
          TREE_SET_CODE (node, RSHIFT_EXPR);
+          TREE_OPERAND (node, 0) = op1;
+          TREE_OPERAND (node, 1) = op2;
+          TREE_TYPE (node) = utype;
+          return convert (prom_type, node);
        }
       break;
 
index c6805c296285258ba0c1834b001f65547fdb89df..70b81b1903c4a55cea04a5e914ec0b755371572d 100644 (file)
@@ -8961,8 +8961,13 @@ patch_binop (node, wfl_op1, wfl_op2)
       /* The >>> operator is a >> operating on unsigned quantities */
       if (code == URSHIFT_EXPR && ! flag_emit_class_files)
        {
-         op1 = convert (unsigned_type (prom_type), op1);
+          tree utype = unsigned_type (prom_type);
+          op1 = convert (utype, op1);
          TREE_SET_CODE (node, RSHIFT_EXPR);
+          TREE_OPERAND (node, 0) = op1;
+          TREE_OPERAND (node, 1) = op2;
+          TREE_TYPE (node) = utype;
+          return convert (prom_type, node);
        }
       break;
 
This page took 0.104439 seconds and 5 git commands to generate.