From ab499d8976ccd5b83f316fb50babb0238df8c02a Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 7 May 2018 20:27:28 +0000 Subject: [PATCH] [llvm-rc] Allow optional commas between the string table index and value This form is even used in one of the examples at https://msdn.microsoft.com/en-us/library/windows/desktop/aa381050(v=vs.85).aspx. Differential Revision: https://reviews.llvm.org/D46508 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331669 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc | 5 +++-- tools/llvm-rc/ResourceScriptParser.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc b/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc index 9847dabb7ca..afda2f3af63 100644 --- a/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc +++ b/test/tools/llvm-rc/Inputs/tag-stringtable-basic.rc @@ -4,9 +4,10 @@ CHARACTERISTICS 0x32 { 0 "a" } +// Commas are optional, so we make sure to test both cases. STRINGTABLE { - 1 "b" - 16 "bb" + 1, "b" + 16, "bb" } STRINGTABLE diff --git a/tools/llvm-rc/ResourceScriptParser.cpp b/tools/llvm-rc/ResourceScriptParser.cpp index 14fe4b4583a..d8398b78514 100644 --- a/tools/llvm-rc/ResourceScriptParser.cpp +++ b/tools/llvm-rc/ResourceScriptParser.cpp @@ -573,6 +573,7 @@ RCParser::ParseType RCParser::parseStringTableResource() { // Some examples in documentation suggest that there might be a comma in // between, however we strictly adhere to the single statement definition. ASSIGN_OR_RETURN(IDResult, readInt()); + consumeOptionalType(Kind::Comma); ASSIGN_OR_RETURN(StrResult, readString()); Table->addString(*IDResult, *StrResult); } -- 2.11.0