[llvm] r321599 - [MC] - Stop ignoring invalid meta data symbols.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Sat Dec 30 23:41:02 PST 2017


Author: grimar
Date: Sat Dec 30 23:41:02 2017
New Revision: 321599

URL: http://llvm.org/viewvc/llvm-project?rev=321599&view=rev
Log:
[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

Added:
    llvm/trunk/test/MC/ELF/metadata-declaration-errors.s
Modified:
    llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp

Modified: llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp?rev=321599&r1=321598&r2=321599&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/ELFAsmParser.cpp Sat Dec 30 23:41:02 2017
@@ -447,7 +447,7 @@ bool ELFAsmParser::parseMetadataSym(MCSy
   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);

Added: llvm/trunk/test/MC/ELF/metadata-declaration-errors.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/metadata-declaration-errors.s?rev=321599&view=auto
==============================================================================
--- llvm/trunk/test/MC/ELF/metadata-declaration-errors.s (added)
+++ llvm/trunk/test/MC/ELF/metadata-declaration-errors.s Sat Dec 30 23:41:02 2017
@@ -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", at progbits,123




More information about the llvm-commits mailing list