[llvm-rc] Add VERSIONINFO parsing ability. [6/8]
This extends the set of llvm-rc parser's available resources by
another one, VERSIONINFO.
Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx
Thanks to Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D37021
llvm-svn: 314468
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-correct-everything.rc b/llvm/test/tools/llvm-rc/Inputs/parser-correct-everything.rc
index 4c7ce40..ec5286c 100644
--- a/llvm/test/tools/llvm-rc/Inputs/parser-correct-everything.rc
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-correct-everything.rc
@@ -78,3 +78,36 @@
END
26 DIALOGEX 1, 2, 3, 4 {}
+
+1 VERSIONINFO
+FILEVERSION 1, 2, 3, 4
+PRODUCTVERSION 5, 6, 7, 8
+FILEFLAGSMASK 50
+FILEFLAGS 555
+FILEOS 110
+FILETYPE 555555
+FILESUBTYPE 14
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ {
+ VALUE "CompanyName", "a"
+ VALUE "FileDescription", "b"
+ VALUE "FileVersion", "c"
+ VALUE "InternalName", "d"
+ VALUE "LegalCopyright", "e"
+ VALUE "LegalTrademarks1", "f"
+ VALUE "LegalTrademarks2", "g"
+ VALUE "OriginalFilename", L"h"
+ VALUE "ProductName", "ii", 2, 3
+ VALUE "ProductVersion"
+ }
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1252
+
+ END
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-bad-type.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-bad-type.rc
new file mode 100644
index 0000000..1fa230d
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-bad-type.rc
@@ -0,0 +1,4 @@
+1 VERSIONINFO
+BEGIN
+ INCORRECT "1", "2"
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-named-main-block.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-named-main-block.rc
new file mode 100644
index 0000000..affd110
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-named-main-block.rc
@@ -0,0 +1,4 @@
+1 VERSIONINFO
+BLOCK "hello"
+BEGIN
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-repeated-fixed.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-repeated-fixed.rc
new file mode 100644
index 0000000..45588a6
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-repeated-fixed.rc
@@ -0,0 +1,6 @@
+1 VERSIONINFO
+FileVersion 1, 2, 3, 4
+PRODUCTVERSION 5, 6, 7, 8
+FILEVERSION 9, 10, 11, 12
+BEGIN
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-inner-block.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-inner-block.rc
new file mode 100644
index 0000000..3ed1fb6
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-inner-block.rc
@@ -0,0 +1,4 @@
+1 VERSIONINFO
+BEGIN
+ BLOCK {}
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-value.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-value.rc
new file mode 100644
index 0000000..acb9eba
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-unnamed-value.rc
@@ -0,0 +1,7 @@
+1 VERSIONINFO
+BEGIN
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE
+ END
+END
diff --git a/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-wrong-fixed.rc b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-wrong-fixed.rc
new file mode 100644
index 0000000..9882d88
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/parser-versioninfo-wrong-fixed.rc
@@ -0,0 +1,3 @@
+1 VERSIONINFO
+WEIRDFIXED 5
+BEGIN END