This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Patch related to PR objc/41108


PR objc/41108 was caused by a NeXT-only gc-only routine being called when compiling for 
the GNU runtime.

It's already fixed in trunk; before closing it, I'd like to apply this patch which adds 
an assert in objc_generate_write_barrier() to make sure it is only called with the next-runtime.

The assert is mostly to clarify what is happening to someone reading the code, but hopefully 
it could also help detect a similar problem early if things get confused during some future code
reorganization.

Ok to commit ?

Thanks

Index: objc-act.c
===================================================================
--- objc-act.c  (revision 167048)
+++ objc-act.c  (working copy)
@@ -4655,6 +4655,10 @@ objc_generate_write_barrier (tree lhs, enum tree_c
   tree result = NULL_TREE, outer;
   int strong_cast_p = 0, outer_gc_p = 0, indirect_p = 0;
 
+  /* This function is currently only used with the next runtime with
+     garbage collection enabled (-fobjc-gc).  */
+  gcc_assert (flag_next_runtime);
+
   /* See if we have any lhs casts, and strip them out.  NB: The lvalue casts
      will have been transformed to the form '*(type *)&expr'.  */
   if (TREE_CODE (lhs) == INDIRECT_REF)
Index: ChangeLog
===================================================================
--- ChangeLog   (revision 167048)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@
+2010-11-22  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR objc/41108
+       * objc-act.c (objc_generate_write_barrier): Added assert to make sure
+       this function is only called with the next runtime.
+
 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/46547



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