[MC] - Stop ignoring invalid meta data symbols.

Previously llvm-mc would silently accept code from testcase,
that contains invalid metadata symbol in section declaration.

Patch fixes the issue.

Differential revision: https://reviews.llvm.org/D41641

llvm-svn: 321599
This commit is contained in:
George Rimar 2017-12-31 07:41:02 +00:00
parent 56d68cd419
commit ba60b14453
2 changed files with 11 additions and 1 deletions

View File

@ -447,7 +447,7 @@ bool ELFAsmParser::parseMetadataSym(MCSymbolELF *&Associated) {
Lex();
StringRef Name;
if (getParser().parseIdentifier(Name))
return true;
return TokError("invalid metadata symbol");
Associated = dyn_cast_or_null<MCSymbolELF>(getContext().lookupSymbol(Name));
if (!Associated || !Associated->isInSection())
return TokError("symbol is not in a section: " + Name);

View File

@ -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