OSDN Git Service

When materializing a cloned function with arguments removed,
authorbaldrick <baldrick@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jul 2010 15:21:16 +0000 (15:21 +0000)
committerbaldrick <baldrick@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jul 2010 15:21:16 +0000 (15:21 +0000)
to TYPE_POINTER_TO field of the new type (which has fewer
arguments) was left pointing to the original type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161918 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree.c

index bd9cf80..3a2fcf4 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-07  Duncan Sands  <baldrick@free.fr>
+
+       PR middle-end/41355
+       * tree.c (build_function_type_skip_args): Copy the original type using
+        build_distinct_type_copy rather than copy_node.
+
 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/44850
index dda9287..2ddd1d8 100644 (file)
@@ -7350,7 +7350,7 @@ build_function_type_skip_args (tree orig_type, bitmap args_to_skip)
   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