diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-11-19 08:22:22 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-11-19 08:22:22 +0100 |
commit | eb1c5aefe09cdd548e8531ae587466438de2ab02 (patch) | |
tree | 9787d569e0db0920cdf56842b8d8aa776a6e31a1 /gcc | |
parent | 3ee44df5efd75078645655941b471f263950dcfd (diff) | |
download | gcc-eb1c5aefe09cdd548e8531ae587466438de2ab02.zip gcc-eb1c5aefe09cdd548e8531ae587466438de2ab02.tar.gz gcc-eb1c5aefe09cdd548e8531ae587466438de2ab02.tar.bz2 |
re PR target/45870 (note: non-delegitimized UNSPEC 5 found (-O1 -g))
PR target/45870
* dwarf2out.c (const_ok_for_output_1): Don't complain about
non-delegitimized TLS UNSPECs.
From-SVN: r166932
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 17 |
2 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2016390..66ca884 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-11-19 Jakub Jelinek <jakub@redhat.com> + + PR target/45870 + * dwarf2out.c (const_ok_for_output_1): Don't complain about + non-delegitimized TLS UNSPECs. + 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu> Ian Lance Taylor <iant@google.com> diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index ea3852e..3285dac 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -13503,11 +13503,18 @@ const_ok_for_output_1 (rtx *rtlp, void *data ATTRIBUTE_UNUSED) /* If delegitimize_address couldn't do anything with the UNSPEC, assume we can't express it in the debug info. */ #ifdef ENABLE_CHECKING - inform (current_function_decl - ? DECL_SOURCE_LOCATION (current_function_decl) - : UNKNOWN_LOCATION, - "non-delegitimized UNSPEC %d found in variable location", - XINT (rtl, 1)); + /* Don't complain about TLS UNSPECs, those are just too hard to + delegitimize. */ + if (XVECLEN (rtl, 0) != 1 + || 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)))) + inform (current_function_decl + ? DECL_SOURCE_LOCATION (current_function_decl) + : UNKNOWN_LOCATION, + "non-delegitimized UNSPEC %d found in variable location", + XINT (rtl, 1)); #endif expansion_failed (NULL_TREE, rtl, "UNSPEC hasn't been delegitimized.\n"); |