From: Jason Merrill Date: Thu, 7 Jul 2011 02:58:33 +0000 (-0400) Subject: re PR c++/49353 (C++ frontend should not declare function EXTERN when it forces them... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ffca9d534c9e8cca5aa1eee5ce28d9960b6d1179;p=gcc.git re PR c++/49353 (C++ frontend should not declare function EXTERN when it forces them to stay) PR c++/49353 * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL on kept inlines. From-SVN: r175954 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8a25c89de87..3957d5ade63 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2011-07-06 Jason Merrill + PR c++/49353 + * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL + on kept inlines. + PR c++/49568 * method.c (make_thunk, use_thunk): Copy DECL_COMDAT. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index fa22bc9411f..5c53a18511c 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -3633,7 +3633,10 @@ expand_or_defer_fn_1 (tree fn) && !DECL_REALLY_EXTERN (fn)) || (flag_keep_inline_dllexport && lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))) - mark_needed (fn); + { + mark_needed (fn); + DECL_EXTERNAL (fn) = 0; + } } /* There's no reason to do any of the work here if we're only doing