https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63234

baoshan <pangbw at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|4.9.1                       |4.9.0

--- Comment #2 from baoshan <pangbw at gmail dot com> ---
1. configure & build gcc
$ PATH_TO_SRC/configure --enable-languages=c --target=arm-linux-eabi
--enable-tls
$ make
2. cat m.c
typedef struct _GHashTable GHashTable;
typedef struct _DNSCacheEntry DNSCacheEntry;
typedef struct _DNSCacheKey DNSCacheKey;
struct _DNSCacheKey
{
};
struct _DNSCacheEntry
{
  DNSCacheEntry *prev, *next;
  DNSCacheKey key;
};
struct __tls_variables
{
  GHashTable *cache;
  DNSCacheEntry persist_first;
  DNSCacheEntry persist_last;
}
 ;
static __thread struct __tls_variables __tls;
dns_cache_cleanup_persistent_hosts (void)
{
  while ((__tls.persist_first).next != &(__tls.persist_last))
    {
      g_hash_table_remove ((__tls.cache), &(__tls.persist_first).next->key);
    }
}

3. cc1 -O1 -fPIC m.c -o m.s
4. cat m.s
In the output you can see there is one line at the end of file:
       .word   .LANCHOR0(tlsldm) + (. - .LPIC3 - 8)
But the lable .LPIC3 is not existed in the file.

Reply via email to