re PR c++/56346 (FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 (test for excess errors))
PR c++/56346 * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit dso_handle parm on targets without __cxa_atexit. From-SVN: r196657
This commit is contained in:
parent
d803a4912e
commit
e9d5a271e5
|
@ -1,3 +1,9 @@
|
|||
2013-03-14 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/56346
|
||||
* decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit
|
||||
dso_handle parm on targets without __cxa_atexit.
|
||||
|
||||
2013-03-11 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/56567
|
||||
|
|
|
@ -6758,10 +6758,9 @@ register_dtor_fn (tree decl)
|
|||
"__aeabi_atexit"), and DECL is a class object, we can just pass the
|
||||
destructor to "__cxa_atexit"; we don't have to build a temporary
|
||||
function to do the cleanup. */
|
||||
ob_parm = (DECL_THREAD_LOCAL_P (decl)
|
||||
|| (flag_use_cxa_atexit
|
||||
&& !targetm.cxx.use_atexit_for_cxa_atexit ()));
|
||||
dso_parm = ob_parm;
|
||||
dso_parm = (flag_use_cxa_atexit
|
||||
&& !targetm.cxx.use_atexit_for_cxa_atexit ());
|
||||
ob_parm = (DECL_THREAD_LOCAL_P (decl) || dso_parm);
|
||||
use_dtor = ob_parm && CLASS_TYPE_P (type);
|
||||
if (use_dtor)
|
||||
{
|
||||
|
@ -6825,7 +6824,7 @@ register_dtor_fn (tree decl)
|
|||
before passing it in, to avoid spurious errors. */
|
||||
addr = build_nop (ptr_type_node, addr);
|
||||
}
|
||||
else if (ob_parm)
|
||||
else
|
||||
/* Since the cleanup functions we build ignore the address
|
||||
they're given, there's no reason to pass the actual address
|
||||
in, and, in general, it's cheaper to pass NULL than any
|
||||
|
@ -6835,6 +6834,10 @@ register_dtor_fn (tree decl)
|
|||
if (dso_parm)
|
||||
arg2 = cp_build_addr_expr (get_dso_handle_node (),
|
||||
tf_warning_or_error);
|
||||
else if (ob_parm)
|
||||
/* Just pass NULL to the dso handle parm if we don't actually
|
||||
have a DSO handle on this target. */
|
||||
arg2 = null_pointer_node;
|
||||
else
|
||||
arg2 = NULL_TREE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue