This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix TLS related ICE
- From: Richard Henderson <rth at redhat dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: roland at redhat dot com, gcc-patches at gcc dot gnu dot org
- Date: Tue, 30 Jul 2002 09:45:59 -0700
- Subject: Re: [PATCH] Fix TLS related ICE
- References: <20020730154715.H20867@sunsite.ms.mff.cuni.cz>
On Tue, Jul 30, 2002 at 03:47:15PM +0200, Jakub Jelinek wrote:
> + /* Addresses of thread local variables might result in
> + function calls. */
> + if (TREE_CODE (args[i].tree_value) == ADDR_EXPR
> + && TREE_CODE (TREE_OPERAND (args[i].tree_value, 0)) == VAR_DECL
> + && DECL_THREAD_LOCAL (TREE_OPERAND (args[i].tree_value, 0))
> + && GET_CODE (args[i].value) == SYMBOL_REF)
> + args[i].value
> + = memory_address (TYPE_MODE (TREE_TYPE (args[i].tree_value)),
> + args[i].value);
I don't like this. Someone (expand_expr or here) should notice that
the constant isn't valid and use that to force it into a register.
r~