This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Unreviewed patch for PR 11297
- From: Jakub Jelinek <jakub at redhat dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 7 Jul 2003 11:24:08 -0400
- Subject: Re: Unreviewed patch for PR 11297
- References: <jakub@redhat.com> <200307071507.LAA14784@makai.watson.ibm.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Mon, Jul 07, 2003 at 11:07:03AM -0400, David Edelsohn wrote:
> >>>>> Jakub Jelinek writes:
>
> Jakub> Can we please move on:
> Jakub> http://gcc.gnu.org/ml/gcc-patches/2003-06/msg03025.html
> Jakub> I believe ppc-linux is still not bootstrappable without it.
>
> I still am waiting on you and Janis and Alan to come to a
> conclusion about how you intended it to work.
Alan clarified the ppc64 !binds_local_p case, so I think all the sequences
gcc with the above patch creates ({-m32,-m64} {-fno-pic,-fpic,-fPIC}
{binds_local_p decl passed to *mi_thunk,!binds_local_p decl passed to it})
are correct.
The binds_local_p case stopped working in CVS after:
2003-01-08 David Edelsohn <edelsohn@gnu.org>
(rs6000_output_mi_thunk): Re-implement as RTL.
(but cp/method.c was never passing binds_local_p decl to it at that time,
so it was not visible).
- if (current_file_function_operand (XEXP (DECL_RTL (function), 0), VOIDmode)
+ SYMBOL_REF_FLAG (funexp) = 0;
+ if (current_file_function_operand (funexp, VOIDmode)
&& (! lookup_attribute ("longcall",
TYPE_ATTRIBUTES (TREE_TYPE (function)))
|| lookup_attribute ("shortcall",
TYPE_ATTRIBUTES (TREE_TYPE (function)))))
- {
-...output local call sequence
- }
- else
- {
-...output plt call sequence
- }
+ SYMBOL_REF_FLAG (funexp) = 1;
+...output call sequence
when current_file_function_operand uses SYMBOL_REF_FLAG (funexp)
means the flag was lost and Janis' changes only kept the
status quo after this change:
SYMBOL_REF_FLAGS (funexp) &= ~SYMBOL_FLAG_LOCAL;
funexp = gen_rtx_MEM (FUNCTION_MODE, funexp);
Jakub