From patchwork Wed Jul 7 15:10:34 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Fix pr middle-end/41355 X-Patchwork-Submitter: Duncan Sands X-Patchwork-Id: 58123 Message-Id: <4C3498EA.1090803@free.fr> To: gcc-patches Date: Wed, 07 Jul 2010 17:10:34 +0200 From: Duncan Sands List-Id: When materializing a cloned function with arguments removed, to TYPE_POINTER_TO field of the new type (which has fewer arguments) was left pointing to the original type. Bootstraps and passes regression testing (tested on the 4.5 branch since 4.6 seems ill right now). Jan Hubicka says "it seems fine to me, but I can not approve it". OK to apply to mainline and 4.5? Changelog entry: 2010-07-07 Duncan Sands PR middle-end/41355 * tree.c (build_function_type_skip_args): Copy the original type using build_distinct_type_copy rather than copy_node. Index: tree.c =================================================================== --- tree.c (revision 161914) +++ tree.c (working copy) @@ -7350,7 +7350,7 @@ if (TREE_CODE (orig_type) != METHOD_TYPE || !bitmap_bit_p (args_to_skip, 0)) { - new_type = copy_node (orig_type); + new_type = build_distinct_type_copy (orig_type); TYPE_ARG_TYPES (new_type) = new_reversed; } else