decl2.c (coerce_new_type): Downgrade error for size_t mismatch to pedwarn.
authorJason Merrill <jason@gcc.gnu.org>
Mon, 7 Jan 2002 20:52:32 +0000 (15:52 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 7 Jan 2002 20:52:32 +0000 (15:52 -0500)
        * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
        to pedwarn.

        * method.c (make_thunk): If !flag_weak, give the thunk the
        function's linkage.
        (use_thunk): Here, too.

From-SVN: r48613

gcc/cp/ChangeLog
gcc/cp/decl2.c
gcc/cp/method.c

index d5a7c65145171e499bc6e6dc36b36ca70f60e459..035408e0177c08152c0dc71f1d3382510f2ff50e 100644 (file)
@@ -1,3 +1,12 @@
+2002-01-07  Jason Merrill  <jason@redhat.com>
+
+       * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
+       to pedwarn.
+
+       * method.c (make_thunk): If !flag_weak, give the thunk the
+       function's linkage.
+       (use_thunk): Here, too.
+
 2002-01-07  Graham Stott  <grahams@redhat.com>
 
         * error.c: Update copyright date.
 
 2002-01-05  Richard Henderson  <rth@redhat.com>
 
-        * semantics.c (expand_body): Revert last change.
+       * semantics.c (expand_body): Revert last change.
 
 2002-01-04  Jason Merrill  <jason@redhat.com>
 
index 04f77c9c00ed06c0843192d6dd005a5bc102b8c1..efc1abd2be488056769a13861deb061cefb5b14a 100644 (file)
@@ -2064,7 +2064,7 @@ coerce_new_type (type)
       e = 2;
       if (args && args != void_list_node)
         args = TREE_CHAIN (args);
-      error ("`operator new' takes type `size_t' (`%T') as first parameter", c_size_type_node);
+      pedwarn ("`operator new' takes type `size_t' (`%T') as first parameter", c_size_type_node);
     }
   switch (e)
   {
index 759bfbebd854cbe19f407ebf931b97642d75991e..288b897c4b71ae17f4e8cd9f18899dcf1fb25ed7 100644 (file)
@@ -338,7 +338,9 @@ make_thunk (function, delta, vcall_index)
       DECL_CONTEXT (thunk) = DECL_CONTEXT (func_decl);
       TREE_READONLY (thunk) = TREE_READONLY (func_decl);
       TREE_THIS_VOLATILE (thunk) = TREE_THIS_VOLATILE (func_decl);
-      comdat_linkage (thunk);
+      TREE_PUBLIC (thunk) = TREE_PUBLIC (func_decl);
+      if (flag_weak)
+       comdat_linkage (thunk);
       SET_DECL_THUNK_P (thunk);
       DECL_INITIAL (thunk) = function;
       THUNK_DELTA (thunk) = d;
@@ -409,6 +411,9 @@ use_thunk (thunk_fndecl, emit_p)
   mark_used (thunk_fndecl);
   /* This thunk is actually defined.  */
   DECL_EXTERNAL (thunk_fndecl) = 0;
+  /* The linkage of the function may have changed.  FIXME in linkage
+     rewrite.  */
+  TREE_PUBLIC (thunk_fndecl) = TREE_PUBLIC (function);
 
   if (flag_syntax_only)
     {