diff options
| author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-07 20:52:32 +0000 |
|---|---|---|
| committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-07 20:52:32 +0000 |
| commit | 9a899b25f58d54e734cd0ef13c129e029fcae6a7 (patch) | |
| tree | 6b5ef1607266707a0d0f6ed2997d354976be74da | |
| parent | e931e2d94156413e51820dfa1fb37b5ee0cdda5f (diff) | |
| download | ppe42-gcc-9a899b25f58d54e734cd0ef13c129e029fcae6a7.tar.gz ppe42-gcc-9a899b25f58d54e734cd0ef13c129e029fcae6a7.zip | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48613 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/cp/ChangeLog | 11 | ||||
| -rw-r--r-- | gcc/cp/decl2.c | 2 | ||||
| -rw-r--r-- | gcc/cp/method.c | 7 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d5a7c651451..035408e0177 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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. @@ -221,7 +230,7 @@ 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> diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 04f77c9c00e..efc1abd2be4 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -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) { diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 759bfbebd85..288b897c4b7 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -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) { |

