diff options
-rw-r--r-- | llvm/test/tools/llvm-rc/Inputs/tag-user.rc | 3 | ||||
-rw-r--r-- | llvm/test/tools/llvm-rc/tag-user.test | 15 | ||||
-rw-r--r-- | llvm/tools/llvm-rc/ResourceScriptParser.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-rc/ResourceScriptStmt.h | 1 |
4 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-user.rc b/llvm/test/tools/llvm-rc/Inputs/tag-user.rc index 7043cca30d0..163748d5845 100644 --- a/llvm/test/tools/llvm-rc/Inputs/tag-user.rc +++ b/llvm/test/tools/llvm-rc/Inputs/tag-user.rc @@ -1,6 +1,9 @@ 500 500 { 1, 2, 3, 4, 5, "data", L"wide data", 0xABCD, 0xABCDEF01L } +501 RCDATA { + 1, 2, 3, 4, 5, "data", L"wide data", 0xABCD, 0xABCDEF01L +} NAME1 NAME2 {} diff --git a/llvm/test/tools/llvm-rc/tag-user.test b/llvm/test/tools/llvm-rc/tag-user.test index 89fdc4fd565..c0c1cfd1823 100644 --- a/llvm/test/tools/llvm-rc/tag-user.test +++ b/llvm/test/tools/llvm-rc/tag-user.test @@ -20,6 +20,21 @@ ; CHECK-NEXT: 0020: CDAB01EF CDAB |......| ; CHECK-NEXT: ) +; CHECK-DAG: Resource type (int): 10 +; CHECK-NEXT: Resource name (int): 501 +; CHECK-NEXT: Data version: 0 +; CHECK-NEXT: Memory flags: 0x30 +; CHECK-NEXT: Language ID: 1033 +; CHECK-NEXT: Version (major): 0 +; CHECK-NEXT: Version (minor): 0 +; CHECK-NEXT: Characteristics: 0 +; CHECK-NEXT: Data size: 38 +; CHECK-NEXT: Data: ( +; CHECK-NEXT: 0000: 01000200 03000400 05006461 74617700 |..........dataw.| +; CHECK-NEXT: 0010: 69006400 65002000 64006100 74006100 |i.d.e. .d.a.t.a.| +; CHECK-NEXT: 0020: CDAB01EF CDAB |......| +; CHECK-NEXT: ) + ; CHECK-DAG: Resource type (string): NAME2 ; CHECK-NEXT: Resource name (string): NAME1 ; CHECK-NEXT: Data version: 0 diff --git a/llvm/tools/llvm-rc/ResourceScriptParser.cpp b/llvm/tools/llvm-rc/ResourceScriptParser.cpp index 0319563e267..dbdb2210f9c 100644 --- a/llvm/tools/llvm-rc/ResourceScriptParser.cpp +++ b/llvm/tools/llvm-rc/ResourceScriptParser.cpp @@ -80,6 +80,8 @@ RCParser::ParseType RCParser::parseSingleResource() { Result = parseIconResource(); else if (TypeToken->equalsLower("MENU")) Result = parseMenuResource(); + else if (TypeToken->equalsLower("RCDATA")) + Result = parseUserDefinedResource(RkRcData); else if (TypeToken->equalsLower("VERSIONINFO")) Result = parseVersionInfoResource(); else diff --git a/llvm/tools/llvm-rc/ResourceScriptStmt.h b/llvm/tools/llvm-rc/ResourceScriptStmt.h index 82f7d11aeb4..22a569c34f5 100644 --- a/llvm/tools/llvm-rc/ResourceScriptStmt.h +++ b/llvm/tools/llvm-rc/ResourceScriptStmt.h @@ -127,6 +127,7 @@ enum ResourceKind { RkDialog = 5, RkStringTableBundle = 6, RkAccelerators = 9, + RkRcData = 10, RkCursorGroup = 12, RkIconGroup = 14, RkVersionInfo = 16, |