rs6000.c (current_file_function_operand): Return zero for weak functions.
* rs6000.c (current_file_function_operand): Return zero for weak functions. (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for weak symbols. * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG for weak symbols. From-SVN: r28527
This commit is contained in:
parent
906fb125a1
commit
8f1b829ed2
3 changed files with 17 additions and 5 deletions
|
@ -1,3 +1,12 @@
|
|||
Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
|
||||
|
||||
* rs6000.c (current_file_function_operand): Return zero for
|
||||
weak functions.
|
||||
(rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
|
||||
weak symbols.
|
||||
* rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
|
||||
for weak symbols.
|
||||
|
||||
Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
* rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
|
||||
|
|
|
@ -1117,7 +1117,7 @@ call_operand (op, mode)
|
|||
|
||||
|
||||
/* Return 1 if the operand is a SYMBOL_REF for a function known to be in
|
||||
this file. */
|
||||
this file and the function is not weakly defined. */
|
||||
|
||||
int
|
||||
current_file_function_operand (op, mode)
|
||||
|
@ -1126,7 +1126,8 @@ current_file_function_operand (op, mode)
|
|||
{
|
||||
return (GET_CODE (op) == SYMBOL_REF
|
||||
&& (SYMBOL_REF_FLAG (op)
|
||||
|| op == XEXP (DECL_RTL (current_function_decl), 0)));
|
||||
|| (op == XEXP (DECL_RTL (current_function_decl), 0)
|
||||
&& !DECL_WEAK (current_function_decl))));
|
||||
}
|
||||
|
||||
|
||||
|
@ -5900,7 +5901,8 @@ rs6000_encode_section_info (decl)
|
|||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
{
|
||||
rtx sym_ref = XEXP (DECL_RTL (decl), 0);
|
||||
if (TREE_ASM_WRITTEN (decl) || ! TREE_PUBLIC (decl))
|
||||
if ((TREE_ASM_WRITTEN (decl) || ! TREE_PUBLIC (decl))
|
||||
&& !DECL_WEAK (decl))
|
||||
SYMBOL_REF_FLAG (sym_ref) = 1;
|
||||
|
||||
if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT)
|
||||
|
|
|
@ -2555,11 +2555,12 @@ extern int rs6000_trunc_used;
|
|||
/* If we are referencing a function that is static or is known to be
|
||||
in this file, make the SYMBOL_REF special. We can use this to indicate
|
||||
that we can branch to this function without emitting a no-op after the
|
||||
call. */
|
||||
call. Do not set this flag if the function is weakly defined. */
|
||||
|
||||
#define ENCODE_SECTION_INFO(DECL) \
|
||||
if (TREE_CODE (DECL) == FUNCTION_DECL \
|
||||
&& (TREE_ASM_WRITTEN (DECL) || ! TREE_PUBLIC (DECL))) \
|
||||
&& (TREE_ASM_WRITTEN (DECL) || ! TREE_PUBLIC (DECL)) \
|
||||
&& !DECL_WEAK (DECL)) \
|
||||
SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1;
|
||||
|
||||
/* Indicate that jump tables go in the text section. */
|
||||
|
|
Loading…
Add table
Reference in a new issue