summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/cp/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/cp/init.c')
-rw-r--r--contrib/gcc/cp/init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/gcc/cp/init.c b/contrib/gcc/cp/init.c
index aed1fde..d70fc32 100644
--- a/contrib/gcc/cp/init.c
+++ b/contrib/gcc/cp/init.c
@@ -1262,6 +1262,14 @@ no_vlist_base_init (rval, exp, init, binfo, flags)
my_friendly_assert (TREE_CODE (func) == CALL_EXPR, 20000131);
func = TREE_OPERAND (func, 0);
my_friendly_assert (TREE_CODE (func) == ADDR_EXPR, 20000132);
+ func = TREE_OPERAND (func, 0);
+ my_friendly_assert (TREE_CODE (func) == FUNCTION_DECL, 20000133);
+
+ /* If we have already seen a definition for the wrapped function,
+ we don't need to declare it weak. Also, declare_weak will complain
+ if we do. */
+ if (!TREE_ASM_WRITTEN (func))
+ declare_weak (func);
if (init == NULL_TREE
|| (TREE_CODE (init) == TREE_LIST && ! TREE_TYPE (init)))
OpenPOWER on IntegriCloud