[PATCH] D41559: [MC] - Disallow invalid section groups declarations.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 24 00:19:51 PST 2017
grimar created this revision.
grimar added a reviewer: rafael.
Herald added a subscriber: emaste.
This fixes parseGroup() so that it always sets error condition on error.
Previously it was not done, because `parseIdentifier` looks never do that,
assuiming that caller should do it if he wants to.
So previously cases from test were silently accepted and produced broken output.
https://reviews.llvm.org/D41559
Files:
lib/MC/MCParser/ELFAsmParser.cpp
test/MC/ELF/comdat-declaration-errors.s
Index: test/MC/ELF/comdat-declaration-errors.s
===================================================================
--- test/MC/ELF/comdat-declaration-errors.s
+++ test/MC/ELF/comdat-declaration-errors.s
@@ -0,0 +1,14 @@
+// RUN: not llvm-mc -triple x86_64-pc-linux-gnu %s \
+// RUN: -filetype=obj -o %t.o 2>&1 | FileCheck %s
+
+// Check we error out on incorrect COMDATs declarations
+// and not just silently ingnore them.
+
+// CHECK: error: invalid group name
+// CHECK-NEXT: .section .foo,"G", at progbits,-abc,comdat
+
+// CHECK: error: invalid linkage
+// CHECK-NEXT: .section .bar,"G", at progbits,abc,-comdat
+
+.section .foo,"G", at progbits,-abc,comdat
+.section .bar,"G", at progbits,abc,-comdat
Index: lib/MC/MCParser/ELFAsmParser.cpp
===================================================================
--- lib/MC/MCParser/ELFAsmParser.cpp
+++ lib/MC/MCParser/ELFAsmParser.cpp
@@ -427,13 +427,13 @@
GroupName = getTok().getString();
Lex();
} else if (getParser().parseIdentifier(GroupName)) {
- return true;
+ return TokError("invalid group name");
}
if (L.is(AsmToken::Comma)) {
Lex();
StringRef Linkage;
if (getParser().parseIdentifier(Linkage))
- return true;
+ return TokError("invalid linkage");
if (Linkage != "comdat")
return TokError("Linkage must be 'comdat'");
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41559.128100.patch
Type: text/x-patch
Size: 1350 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171224/d273e9d0/attachment.bin>
More information about the llvm-commits
mailing list