[ARM] Fix code generation for:

static __thread struct {
    int a;
    int b;
} teste = {0, 0};

llvm-svn: 43722
This commit is contained in:
Lauro Ramos Venancio 2007-11-05 18:33:37 +00:00
parent e93520d977
commit 1a30c18e88
2 changed files with 12 additions and 1 deletions

View File

@ -836,7 +836,7 @@ bool ARMAsmPrinter::doFinalization(Module &M) {
if (Subtarget->isTargetELF())
O << "\t.type " << name << ",%object\n";
if (C->isNullValue() && !I->hasSection()) {
if (C->isNullValue() && !I->hasSection() && !I->isThreadLocal()) {
if (I->hasExternalLinkage()) {
if (const char *Directive = TAI->getZeroFillDirective()) {
O << "\t.globl\t" << name << "\n";

View File

@ -0,0 +1,11 @@
; RUN: llvm-as < %s | llc -march=arm -mtriple=arm-linux-gnueabi | \
; RUN: grep {tbss}
%struct.anon = type { i32, i32 }
@teste = internal thread_local global %struct.anon zeroinitializer ; <%struct.anon*> [#uses=1]
define i32 @main() {
entry:
%tmp2 = load i32* getelementptr (%struct.anon* @teste, i32 0, i32 0), align 8 ; <i32> [#uses=1]
ret i32 %tmp2
}