Hi,
this is the patch I comitted after testing.
My apologizes for the breakage.

Honza

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 201816)
+++ ChangeLog   (working copy)
@@ -1,3 +1,8 @@
+2013-08-16  Jan Hubicka  <j...@suse.cz>
+
+       PR middle-end/58179
+       * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
+
 2013-08-16  David Edelsohn  <dje....@gmail.com>
 
        * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
Index: tree.c
===================================================================
--- tree.c      (revision 201814)
+++ tree.c      (working copy)
@@ -11873,7 +11873,11 @@ obj_type_ref_class (tree ref)
   ref = TREE_TYPE (ref);
   gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE);
   ref = TREE_TYPE (ref);
-  gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE);
+  /* We look for type THIS points to.  ObjC also builds
+     OBJ_TYPE_REF with non-method calls, Their first parameter
+     ID however also corresponds to class type. */
+  gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE
+                      || TREE_CODE (ref) == FUNCTION_TYPE);
   ref = TREE_VALUE (TYPE_ARG_TYPES (ref));
   gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE);
   return TREE_TYPE (ref);

Reply via email to