This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix TLS related ICE


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]