Skip to content

Commit 7bc3c58

Browse files
committed
[llvm-rc] Add support for the RCDATA resource type
This is the same as any other user defined resource, but with a specific allocated resource type number. Differential Revision: https://reviews.llvm.org/D46636 llvm-svn: 331902
1 parent c1a6785 commit 7bc3c58

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

llvm/test/tools/llvm-rc/Inputs/tag-user.rc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
500 500 {
22
1, 2, 3, 4, 5, "data", L"wide data", 0xABCD, 0xABCDEF01L
33
}
4+
501 RCDATA {
5+
1, 2, 3, 4, 5, "data", L"wide data", 0xABCD, 0xABCDEF01L
6+
}
47

58
NAME1 NAME2 {}
69

llvm/test/tools/llvm-rc/tag-user.test

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@
2020
; CHECK-NEXT: 0020: CDAB01EF CDAB |......|
2121
; CHECK-NEXT: )
2222

23+
; CHECK-DAG: Resource type (int): 10
24+
; CHECK-NEXT: Resource name (int): 501
25+
; CHECK-NEXT: Data version: 0
26+
; CHECK-NEXT: Memory flags: 0x30
27+
; CHECK-NEXT: Language ID: 1033
28+
; CHECK-NEXT: Version (major): 0
29+
; CHECK-NEXT: Version (minor): 0
30+
; CHECK-NEXT: Characteristics: 0
31+
; CHECK-NEXT: Data size: 38
32+
; CHECK-NEXT: Data: (
33+
; CHECK-NEXT: 0000: 01000200 03000400 05006461 74617700 |..........dataw.|
34+
; CHECK-NEXT: 0010: 69006400 65002000 64006100 74006100 |i.d.e. .d.a.t.a.|
35+
; CHECK-NEXT: 0020: CDAB01EF CDAB |......|
36+
; CHECK-NEXT: )
37+
2338
; CHECK-DAG: Resource type (string): NAME2
2439
; CHECK-NEXT: Resource name (string): NAME1
2540
; CHECK-NEXT: Data version: 0

llvm/tools/llvm-rc/ResourceScriptParser.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ RCParser::ParseType RCParser::parseSingleResource() {
8080
Result = parseIconResource();
8181
else if (TypeToken->equalsLower("MENU"))
8282
Result = parseMenuResource();
83+
else if (TypeToken->equalsLower("RCDATA"))
84+
Result = parseUserDefinedResource(RkRcData);
8385
else if (TypeToken->equalsLower("VERSIONINFO"))
8486
Result = parseVersionInfoResource();
8587
else

llvm/tools/llvm-rc/ResourceScriptStmt.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ enum ResourceKind {
127127
RkDialog = 5,
128128
RkStringTableBundle = 6,
129129
RkAccelerators = 9,
130+
RkRcData = 10,
130131
RkCursorGroup = 12,
131132
RkIconGroup = 14,
132133
RkVersionInfo = 16,

0 commit comments

Comments
 (0)