diff --git a/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp b/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp index b95a2ac13e0..51ffc5246ec 100644 --- a/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp +++ b/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp @@ -73,6 +73,7 @@ PPCLinuxMCAsmInfo::PPCLinuxMCAsmInfo(bool is64Bit, const Triple& T) { ZeroDirective = "\t.space\t"; Data64bitsDirective = is64Bit ? "\t.quad\t" : nullptr; AssemblerDialect = 1; // New-Style mnemonics. + LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment; if (T.getOS() == llvm::Triple::FreeBSD || (T.getOS() == llvm::Triple::NetBSD && !is64Bit) || diff --git a/test/MC/PowerPC/lcomm.s b/test/MC/PowerPC/lcomm.s new file mode 100644 index 00000000000..b6beedea5fd --- /dev/null +++ b/test/MC/PowerPC/lcomm.s @@ -0,0 +1,22 @@ +# RUN: llvm-mc -triple powerpc-unknown-unknown -filetype=obj %s | \ +# RUN: llvm-readobj -s -sd | FileCheck %s +# RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \ +# RUN: llvm-readobj -s -sd | FileCheck %s + +.lcomm foo, 16, 16 + +// CHECK: Section { +// CHECK: Name: .bss +// CHECK-NEXT: Type: SHT_NOBITS +// CHECK-NEXT: Flags [ +// CHECK-NEXT: SHF_ALLOC +// CHECK-NEXT: SHF_WRITE +// CHECK-NEXT: ] +// CHECK-NEXT: Address: 0x0 +// CHECK-NEXT: Offset: 0x40 +// CHECK-NEXT: Size: 16 +// CHECK-NEXT: Link: 0 +// CHECK-NEXT: Info: 0 +// CHECK-NEXT: AddressAlignment: 16 +// CHECK-NEXT: EntrySize: 0 +// CHECK-NEXT: SectionData (