Re: [C++ PATCH] Fix thread_local initialization (PR c++/60702, take 2)

2019-03-22 Thread Jason Merrill
On 3/22/19 8:55 AM, Jakub Jelinek wrote: On Thu, Mar 21, 2019 at 07:31:44PM -0400, Jason Merrill wrote: How about else if (tree wrap = maybe_call_tls_wrapper_fn (expr)) expr = wrap; LGTM. Here is the full patch I've bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? OK

[C++ PATCH] Fix thread_local initialization (PR c++/60702, take 2)

2019-03-22 Thread Jakub Jelinek
On Thu, Mar 21, 2019 at 07:31:44PM -0400, Jason Merrill wrote: > How about > > else if (tree wrap = maybe_call_tls_wrapper_fn (expr)) > expr = wrap; LGTM. Here is the full patch I've bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2019-03-22 Jakub Jelinek PR c

Re: [C++ PATCH] Fix thread_local initialization (PR c++/60702)

2019-03-21 Thread Jason Merrill
On 3/21/19 6:55 PM, Jakub Jelinek wrote: On Thu, Mar 21, 2019 at 05:03:11PM -0400, Jason Merrill wrote: --- gcc/cp/semantics.c.jj 2019-03-14 09:14:16.718012031 +0100 +++ gcc/cp/semantics.c 2019-03-15 16:53:14.270384477 +0100 @@ -2135,6 +2135,17 @@ finish_qualified_id_expr (tree qualifyin

Re: [C++ PATCH] Fix thread_local initialization (PR c++/60702)

2019-03-21 Thread Jakub Jelinek
On Thu, Mar 21, 2019 at 05:03:11PM -0400, Jason Merrill wrote: > > --- gcc/cp/semantics.c.jj 2019-03-14 09:14:16.718012031 +0100 > > +++ gcc/cp/semantics.c 2019-03-15 16:53:14.270384477 +0100 > > @@ -2135,6 +2135,17 @@ finish_qualified_id_expr (tree qualifyin > > expr = build_qualified_n

Re: [C++ PATCH] Fix thread_local initialization (PR c++/60702)

2019-03-21 Thread Jason Merrill
On 3/15/19 4:53 PM, Jakub Jelinek wrote: Hi! As the testcase shows, we replace TLS vars that need initialization in finish_id_expression_1 and in tsubst_copy_and_build of a VAR_DECL with a _ZTW* call, but miss it in other cases where finish_id_expression is not actually called. In particular bu

[C++ PATCH] Fix thread_local initialization (PR c++/60702)

2019-03-15 Thread Jakub Jelinek
Hi! As the testcase shows, we replace TLS vars that need initialization in finish_id_expression_1 and in tsubst_copy_and_build of a VAR_DECL with a _ZTW* call, but miss it in other cases where finish_id_expression is not actually called. In particular build_class_member_access_expr when we do obj