diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 15ba96b84fa47..b36c5f067a953 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -3452,7 +3452,7 @@ bool AsmParser::parseDirectiveAlign(bool IsPow2, unsigned ValueSize) { } } - if (HasFillExpr) { + if (HasFillExpr && FillExpr != 0) { MCSection *Sec = getStreamer().getCurrentSectionOnly(); if (Sec && Sec->isVirtualSection()) { ReturnVal |= diff --git a/llvm/test/MC/ELF/nobits-non-zero-value.s b/llvm/test/MC/ELF/nobits-non-zero-value.s index 8f37a957b6b56..9b2bea6278e69 100644 --- a/llvm/test/MC/ELF/nobits-non-zero-value.s +++ b/llvm/test/MC/ELF/nobits-non-zero-value.s @@ -15,5 +15,8 @@ # CHECK: {{.*}}.s:[[#@LINE+1]]:11: warning: ignoring non-zero fill value in SHT_NOBITS section '.bss' .align 4, 42 +# CHECK-NOT: {{.*}}.s:[[#@LINE+1]]:11: warning: ignoring non-zero fill value in SHT_NOBITS section '.bss' +.align 4, 0 + # CHECK: :0: error: SHT_NOBITS section '.bss' cannot have non-zero initializers .long 1