diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp --- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -2601,7 +2601,7 @@ SmallString<128> Name; StringRef Prefix = "."; Name += Prefix; - Name += I.first.first->getName(); + Name += cast(I.first.first)->getSymbolTableName(); MCSymbol *S = OutContext.getOrCreateSymbol(Name); TCEntry = cast( getObjFileLowering().getSectionForTOCEntry(S, TM)); diff --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-tls-rename.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-tls-rename.ll new file mode 100644 --- /dev/null +++ b/llvm/test/CodeGen/PowerPC/aix-xcoff-tls-rename.ll @@ -0,0 +1,15 @@ +; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \ +; RUN: -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | FileCheck %s + +; CHECK: .extern .__tls_get_addr[PR] +; CHECK-NEXT: .csect .tdata[TL],2 +; CHECK-NEXT: .globl _Renamed..24f_f # @"f$f" +; CHECK-NEXT: .rename _Renamed..24f_f,"f$f" + +@"f$f" = thread_local global i32 10, align 4 + +define void @fun() { +entry: + store i32 1, ptr @"f$f", align 4 + ret void +}