Roland McGrath <mcgrathr@google.com>
* dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's not a VAR_DECL. Also don't limit it to UNSPECs with exactly one operand. From-SVN: r188398
This commit is contained in:
parent
f9f472bd6a
commit
a04739cb17
2 changed files with 12 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
|||
2012-06-11 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
|
||||
SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
|
||||
not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
|
||||
operand.
|
||||
|
||||
2012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
PR target/53511
|
||||
|
|
|
@ -10129,12 +10129,12 @@ const_ok_for_output_1 (rtx *rtlp, void *data ATTRIBUTE_UNUSED)
|
|||
we can't express it in the debug info. */
|
||||
#ifdef ENABLE_CHECKING
|
||||
/* Don't complain about TLS UNSPECs, those are just too hard to
|
||||
delegitimize. */
|
||||
if (XVECLEN (rtl, 0) != 1
|
||||
delegitimize. Note this could be a non-decl SYMBOL_REF such as
|
||||
one in a constant pool entry, so testing SYMBOL_REF_TLS_MODEL
|
||||
rather than DECL_THREAD_LOCAL_P is not just an optimization. */
|
||||
if (XVECLEN (rtl, 0) == 0
|
||||
|| GET_CODE (XVECEXP (rtl, 0, 0)) != SYMBOL_REF
|
||||
|| SYMBOL_REF_DECL (XVECEXP (rtl, 0, 0)) == NULL
|
||||
|| TREE_CODE (SYMBOL_REF_DECL (XVECEXP (rtl, 0, 0))) != VAR_DECL
|
||||
|| !DECL_THREAD_LOCAL_P (SYMBOL_REF_DECL (XVECEXP (rtl, 0, 0))))
|
||||
|| SYMBOL_REF_TLS_MODEL (XVECEXP (rtl, 0, 0)) == TLS_MODEL_NONE)
|
||||
inform (current_function_decl
|
||||
? DECL_SOURCE_LOCATION (current_function_decl)
|
||||
: UNKNOWN_LOCATION,
|
||||
|
|
Loading…
Add table
Reference in a new issue