[llvm] r215373 - MC: Diagnose an unexpected token in COFF .section instead of asserting
Reid Kleckner
reid at kleckner.net
Mon Aug 11 11:34:43 PDT 2014
Author: rnk
Date: Mon Aug 11 13:34:43 2014
New Revision: 215373
URL: http://llvm.org/viewvc/llvm-project?rev=215373&view=rev
Log:
MC: Diagnose an unexpected token in COFF .section instead of asserting
This can easily arise when trying to assemble and ELF style .section
directive for a COFF object file.
Modified:
llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp
llvm/trunk/test/MC/COFF/section-invalid-flags.s
Modified: llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp?rev=215373&r1=215372&r2=215373&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp Mon Aug 11 13:34:43 2014
@@ -364,6 +364,10 @@ bool COFFAsmParser::ParseDirectiveSectio
Flags |= COFF::IMAGE_SCN_LNK_COMDAT;
+ if (!getLexer().is(AsmToken::Identifier))
+ return TokError("expected comdat type such as 'discard' or 'largest' "
+ "after protection bits");
+
if (parseCOMDATType(Type))
return true;
Modified: llvm/trunk/test/MC/COFF/section-invalid-flags.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/COFF/section-invalid-flags.s?rev=215373&r1=215372&r2=215373&view=diff
==============================================================================
--- llvm/trunk/test/MC/COFF/section-invalid-flags.s (original)
+++ llvm/trunk/test/MC/COFF/section-invalid-flags.s Mon Aug 11 13:34:43 2014
@@ -6,3 +6,6 @@
// CHECK: error: conflicting section flags 'b' and 'd'
.section s_bd,"bd"; .long 1
+
+// CHECK: error: expected comdat type such as 'discard' or 'largest' after protection bits
+.section .stack, "w", @nobits
More information about the llvm-commits
mailing list