diff -Nrcpad gcc-4.1.1/gcc/objc/ChangeLog gcc-4.1.2/gcc/objc/ChangeLog *** gcc-4.1.1/gcc/objc/ChangeLog Wed May 24 23:41:42 2006 --- gcc-4.1.2/gcc/objc/ChangeLog Wed Feb 14 05:11:09 2007 *************** *** 1,3 **** --- 1,27 ---- + 2007-02-13 Release Manager + + * GCC 4.1.2 released. + + 2007-01-23 Andrew Pinski + + PR objc/27438 + * objc-act.c (objc_add_static_instance): Mark the decl as + TREE_USED. + + 2007-01-21 Andrew Pinski + + PR objc/30479 + * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead + of htab_hash_pointer. + (lookup_interface): Likewise. + (add_class): Likewise. + + 2006-10-03 Andrew Pinski + + PR objc/29195 + * objc-act.c (objc_push_parm): If we change the type of the + decl, relayout the decl. + 2006-05-24 Release Manager * GCC 4.1.1 released. diff -Nrcpad gcc-4.1.1/gcc/objc/objc-act.c gcc-4.1.2/gcc/objc/objc-act.c *** gcc-4.1.1/gcc/objc/objc-act.c Fri May 5 19:51:37 2006 --- gcc-4.1.2/gcc/objc/objc-act.c Wed Jan 24 06:06:07 2007 *************** objc_add_static_instance (tree construct *** 1998,2003 **** --- 1998,2004 ---- DECL_COMMON (decl) = 1; TREE_STATIC (decl) = 1; DECL_ARTIFICIAL (decl) = 1; + TREE_USED (decl) = 1; DECL_INITIAL (decl) = constructor; /* We may be writing something else just now. *************** static hashval_t *** 3288,3294 **** hash_interface (const void *p) { const struct interface_tuple *d = p; ! return htab_hash_pointer (d->id); } static int --- 3289,3295 ---- hash_interface (const void *p) { const struct interface_tuple *d = p; ! return IDENTIFIER_HASH_VALUE (d->id); } static int *************** lookup_interface (tree ident) *** 3317,3323 **** { slot = (struct interface_tuple **) htab_find_slot_with_hash (interface_htab, ident, ! htab_hash_pointer (ident), NO_INSERT); if (slot && *slot) i = (*slot)->class_name; --- 3318,3324 ---- { slot = (struct interface_tuple **) htab_find_slot_with_hash (interface_htab, ident, ! IDENTIFIER_HASH_VALUE (ident), NO_INSERT); if (slot && *slot) i = (*slot)->class_name; *************** add_class (tree class_name, tree name) *** 6982,6988 **** interface_htab = htab_create_ggc (31, hash_interface, eq_interface, NULL); slot = (struct interface_tuple **) htab_find_slot_with_hash (interface_htab, name, ! htab_hash_pointer (name), INSERT); if (!*slot) { --- 6983,6989 ---- interface_htab = htab_create_ggc (31, hash_interface, eq_interface, NULL); slot = (struct interface_tuple **) htab_find_slot_with_hash (interface_htab, name, ! IDENTIFIER_HASH_VALUE (name), INSERT); if (!*slot) { *************** static GTY(()) tree objc_parmlist = NULL *** 8215,8225 **** static void objc_push_parm (tree parm) { /* Decay arrays and functions into pointers. */ if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE) ! TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm))); else if (TREE_CODE (TREE_TYPE (parm)) == FUNCTION_TYPE) ! TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm)); DECL_ARG_TYPE (parm) = lang_hooks.types.type_promotes_to (TREE_TYPE (parm)); --- 8216,8237 ---- static void objc_push_parm (tree parm) { + bool relayout_needed = false; /* Decay arrays and functions into pointers. */ if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE) ! { ! TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (TREE_TYPE (parm))); ! relayout_needed = true; ! } else if (TREE_CODE (TREE_TYPE (parm)) == FUNCTION_TYPE) ! { ! TREE_TYPE (parm) = build_pointer_type (TREE_TYPE (parm)); ! relayout_needed = true; ! } ! ! if (relayout_needed) ! relayout_decl (parm); ! DECL_ARG_TYPE (parm) = lang_hooks.types.type_promotes_to (TREE_TYPE (parm)); diff -Nrcpad gcc-4.1.1/libobjc/ChangeLog gcc-4.1.2/libobjc/ChangeLog *** gcc-4.1.1/libobjc/ChangeLog Wed May 24 23:42:27 2006 --- gcc-4.1.2/libobjc/ChangeLog Wed Feb 14 05:12:05 2007 *************** *** 1,3 **** --- 1,7 ---- + 2007-02-13 Release Manager + + * GCC 4.1.2 released. + 2006-05-24 Release Manager * GCC 4.1.1 released.