#if HAVE_AS_TLS
if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL_P (decl))
{
- if (TREE_PUBLIC (decl))
- return tls_data_section;
- else if (bss_initializer_p (decl))
+ if (bss_initializer_p (decl))
{
/* Convert to COMMON to emit in BSS. */
DECL_COMMON (decl) = 1;
return tls_comm_section;
}
+ else if (TREE_PUBLIC (decl))
+ return tls_data_section;
else
return tls_private_data_section;
}
} while (0)
#ifdef HAVE_AS_TLS
-#define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \
- do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
- fprintf ((FILE), "%s," HOST_WIDE_INT_PRINT_UNSIGNED",%s[UL],3\n", \
- (*targetm.strip_name_encoding) (NAME), (SIZE), \
- (*targetm.strip_name_encoding) (NAME)); \
+#define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \
+ do { fputs (COMMON_ASM_OP, (FILE)); \
+ RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
+ fprintf ((FILE), "[UL]," HOST_WIDE_INT_PRINT_UNSIGNED"\n", \
+ (SIZE)); \
} while (0)
#endif
// The reference temp should be TLS, not normal data.
// { dg-require-effective-target c++11 }
// { dg-final { scan-assembler-not "\\.data" { target tls_native xfail powerpc-*-aix* } } }
-// { dg-final { scan-assembler-symbol-section {^_?ir$} {^\.tbss|\[TL\]} { target tls_native } } }
+// { dg-final { scan-assembler-symbol-section {^_?ir$} {^\.tbss} { target tls_native xfail powerpc-*-aix* } } }
// { dg-final { scan-assembler-symbol-section {^_?_ZGR2ir_$} {^\.tdata|\[TL\]} { target tls_native } } }
extern int&& ir;