]> gcc.gnu.org Git - gcc.git/commitdiff
expr.c (generate_name): Name prefix changed to avoid clashes with assembler temp...
authorAndrew Haley <aph@cygnus.com>
Wed, 13 Jan 1999 06:13:37 +0000 (06:13 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Wed, 13 Jan 1999 06:13:37 +0000 (06:13 +0000)
1999-01-13  Andrew Haley  <aph@cygnus.com>
* expr.c (generate_name): Name prefix changed to avoid clashes
with assembler temp labels.
* parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
MODIFY_EXPR.  Without this, code for the assignement may not be
generated at all and the synchronized statement will read an
uninitialized variable.

From-SVN: r24649

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

index a175442751b37b8d6e540f1d835137fdf87a15ed..d3062f8db00405a71f57e81657eb83016aadd0b1 100644 (file)
@@ -1,3 +1,13 @@
+1999-01-13  Andrew Haley  <aph@cygnus.com>
+
+       * expr.c (generate_name): Name prefix changed to avoid clashes
+       with assembler temp labels.
+
+       * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
+       MODIFY_EXPR.  Without this, code for the assignement may not be
+       generated at all and the synchronized statement will read an
+       uninitialized variable.
+       
 Wed Jan 13 01:24:54 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * class.c (maybe_layout_super_class): Fixed returned value.
index 136415ba3788b4b7bb195a03c21eaa3624695556..623eb909334f6faf047a787b61f3fa6caf591cec 100644 (file)
@@ -1186,7 +1186,7 @@ generate_name ()
 {
   static int l_number = 0;
   char buff [20];
-  sprintf (buff, "$L%d", l_number++);
+  sprintf (buff, "$LJv%d", l_number++);
   return get_identifier (buff);
 }
 
index a357e8d8ffc0fcef0bb337a006492ea005a38aee..c34aa135d8e3b0832599aa67562ea71d7b7638ec 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/cygnus/gnupro-98r1/share/bison.simple"
+#line 3 "/usr/local/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/cygnus/gnupro-98r1/share/bison.simple"
+#line 196 "/usr/local/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/cygnus/gnupro-98r1/share/bison.simple"
+#line 498 "/usr/local/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -13461,7 +13461,7 @@ patch_synchronized_statement (node, wfl_op1)
   tree expr = java_complete_tree (TREE_OPERAND (node, 0));
   tree block = TREE_OPERAND (node, 1);
 
-  tree enter, exit, finally, expr_decl;
+  tree enter, exit, finally, expr_decl, assignment;
 
   if (expr == error_mark_node)
     {
@@ -13501,13 +13501,13 @@ patch_synchronized_statement (node, wfl_op1)
   BUILD_MONITOR_EXIT (exit, expr_decl);
   CAN_COMPLETE_NORMALLY (enter) = 1;
   CAN_COMPLETE_NORMALLY (exit) = 1;
+  assignment = build (MODIFY_EXPR, NULL_TREE, expr_decl, expr);
+  TREE_SIDE_EFFECTS (assignment) = 1;
   node = build1 (CLEANUP_POINT_EXPR, NULL_TREE,
                 build (COMPOUND_EXPR, NULL_TREE,
                        build (WITH_CLEANUP_EXPR, NULL_TREE,
                               build (COMPOUND_EXPR, NULL_TREE,
-                                     build (MODIFY_EXPR, NULL_TREE,
-                                            expr_decl, expr),
-                                     enter),
+                                     assignment, enter),
                               NULL_TREE, exit),
                        block));
   node = build_expr_block (node, expr_decl);
index 03d04eecfdeb2106cca120e2f2c461002d0a58ff..03840042f2f2cd98748eda2abbaf3fb6ce0ddb62 100644 (file)
@@ -10823,7 +10823,7 @@ patch_synchronized_statement (node, wfl_op1)
   tree expr = java_complete_tree (TREE_OPERAND (node, 0));
   tree block = TREE_OPERAND (node, 1);
 
-  tree enter, exit, finally, expr_decl;
+  tree enter, exit, finally, expr_decl, assignment;
 
   if (expr == error_mark_node)
     {
@@ -10863,13 +10863,13 @@ patch_synchronized_statement (node, wfl_op1)
   BUILD_MONITOR_EXIT (exit, expr_decl);
   CAN_COMPLETE_NORMALLY (enter) = 1;
   CAN_COMPLETE_NORMALLY (exit) = 1;
+  assignment = build (MODIFY_EXPR, NULL_TREE, expr_decl, expr);
+  TREE_SIDE_EFFECTS (assignment) = 1;
   node = build1 (CLEANUP_POINT_EXPR, NULL_TREE,
                 build (COMPOUND_EXPR, NULL_TREE,
                        build (WITH_CLEANUP_EXPR, NULL_TREE,
                               build (COMPOUND_EXPR, NULL_TREE,
-                                     build (MODIFY_EXPR, NULL_TREE,
-                                            expr_decl, expr),
-                                     enter),
+                                     assignment, enter),
                               NULL_TREE, exit),
                        block));
   node = build_expr_block (node, expr_decl);
This page took 0.113355 seconds and 5 git commands to generate.