Index: llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp =================================================================== --- llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp +++ llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp @@ -447,7 +447,7 @@ Lex(); StringRef Name; if (getParser().parseIdentifier(Name)) - return true; + return TokError("invalid metadata symbol"); Associated = dyn_cast_or_null(getContext().lookupSymbol(Name)); if (!Associated || !Associated->isInSection()) return TokError("symbol is not in a section: " + Name); Index: llvm/trunk/test/MC/ELF/metadata-declaration-errors.s =================================================================== --- llvm/trunk/test/MC/ELF/metadata-declaration-errors.s +++ llvm/trunk/test/MC/ELF/metadata-declaration-errors.s @@ -0,0 +1,10 @@ +// RUN: not llvm-mc -triple x86_64-pc-linux-gnu %s \ +// RUN: -filetype=obj -o %t.o 2>&1 | FileCheck %s + +// Check we do not silently ignore invalid metadata symbol (123). +// CHECK: error: invalid metadata symbol + +.section .foo,"a" +.quad 0 + +.section bar,"ao",@progbits,123