diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index cff1715d4ed..a1233929615 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -435,7 +435,11 @@ bool MCAsmStreamer::EmitSymbolAttribute(MCSymbol *Symbol, case MCSA_Internal: OS << "\t.internal\t"; break; case MCSA_LazyReference: OS << "\t.lazy_reference\t"; break; case MCSA_Local: OS << "\t.local\t"; break; - case MCSA_NoDeadStrip: OS << "\t.no_dead_strip\t"; break; + case MCSA_NoDeadStrip: + if (!MAI->hasNoDeadStrip()) + return false; + OS << "\t.no_dead_strip\t"; + break; case MCSA_SymbolResolver: OS << "\t.symbol_resolver\t"; break; case MCSA_PrivateExtern: OS << "\t.private_extern\t"; diff --git a/test/MC/AsmParser/directive_set.s b/test/MC/AsmParser/directive_set.s index 69abce0db2f..8d4180a364b 100644 --- a/test/MC/AsmParser/directive_set.s +++ b/test/MC/AsmParser/directive_set.s @@ -1,12 +1,14 @@ -# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s +# RUN: llvm-mc -triple i386-unknown-elf %s | FileCheck %s # CHECK: TEST0: # CHECK: a = 0 +# CHECK-NOT: .no_dead_strip a TEST0: .set a, 0 # CHECK: TEST1: # CHECK: a = 0 +# CHECK-NOT: .no_dead_strip a TEST1: .equ a, 0