This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PR java/17689 [4.0 Regression] New testsuite failures indicatesignal unwinding is broken


On Mon, 2004-09-27 at 10:38, Andrew Haley wrote:
> It seems like a write to a volatile mem is being deleted.  This may
> not be a real bug, because libgcj is obtaining the mem by doing some
> blatantly illegal addressing into the stack.
> 
> I should rework i386-signal.h to access the kernel struct in a legal
> way.  Until then, this patch makes gcj usable again.
> 
> However, I think the regression is down to this patch:
> 
Yes, and I think I know why.  If we are processing a mix of volatile and
non-volatile pointers, we'll mess things up because the code just copies
TREE_THIS_VOLATILE from the type.

I'm sorry for the mess.  Odd that it didn't trigger here.  *blush*
If you can't test now, let me know and I'll have it tested later today.


Diego.

Index: tree-ssa-alias.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-alias.c,v
retrieving revision 2.43
diff -d -u -p -r2.43 tree-ssa-alias.c
--- tree-ssa-alias.c    23 Sep 2004 14:34:19 -0000      2.43
+++ tree-ssa-alias.c    27 Sep 2004 14:47:20 -0000
@@ -2127,7 +2127,8 @@ get_tmt_for (tree ptr, struct alias_info
     }

   /* If the pointed-to type is volatile, so is the tag.  */
-  TREE_THIS_VOLATILE (tag) = TREE_THIS_VOLATILE (tag_type);
+  if (TREE_THIS_VOLATILE (tag_type))
+    TREE_THIS_VOLATILE (tag) = 1;

   /* Make sure that the type tag has the same alias set as the
      pointed-to type.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]