diff --git a/llvm/test/tools/llvm-rc/codepage.test b/llvm/test/tools/llvm-rc/codepage.test --- a/llvm/test/tools/llvm-rc/codepage.test +++ b/llvm/test/tools/llvm-rc/codepage.test @@ -4,6 +4,8 @@ ; RUN: llvm-readobj %t.utf8.res | FileCheck %s --check-prefix=UTF8 ; RUN: llvm-windres --no-preprocess --codepage 65001 %p/Inputs/utf8.rc %t.utf8.res ; RUN: llvm-readobj %t.utf8.res | FileCheck %s --check-prefix=UTF8 +; RUN: llvm-windres --no-preprocess --codepage 0xfde9 %p/Inputs/utf8.rc %t.utf8.res +; RUN: llvm-readobj %t.utf8.res | FileCheck %s --check-prefix=UTF8 ; UTF8: Resource type (int): STRINGTABLE (ID 6) ; UTF8-NEXT: Resource name (int): 1 diff --git a/llvm/test/tools/llvm-rc/language.test b/llvm/test/tools/llvm-rc/language.test --- a/llvm/test/tools/llvm-rc/language.test +++ b/llvm/test/tools/llvm-rc/language.test @@ -6,6 +6,8 @@ ; RUN: llvm-readobj %t.res | FileCheck %s ; RUN: llvm-windres --no-preprocess --language 40A %p/Inputs/language.rc %t.res ; RUN: llvm-readobj %t.res | FileCheck %s +; RUN: llvm-windres --no-preprocess -l 0x40A %p/Inputs/language.rc %t.res +; RUN: llvm-readobj %t.res | FileCheck %s ; CHECK: Resource name (int): 1 ; CHECK-NEXT: Data version: diff --git a/llvm/tools/llvm-rc/llvm-rc.cpp b/llvm/tools/llvm-rc/llvm-rc.cpp --- a/llvm/tools/llvm-rc/llvm-rc.cpp +++ b/llvm/tools/llvm-rc/llvm-rc.cpp @@ -476,13 +476,14 @@ Opts.Params.CodePage = CpWin1252; // Different default if (InputArgs.hasArg(WINDRES_codepage)) { if (InputArgs.getLastArgValue(WINDRES_codepage) - .getAsInteger(10, Opts.Params.CodePage)) + .getAsInteger(0, Opts.Params.CodePage)) fatalError("Invalid code page: " + InputArgs.getLastArgValue(WINDRES_codepage)); } if (InputArgs.hasArg(WINDRES_language)) { - if (InputArgs.getLastArgValue(WINDRES_language) - .getAsInteger(16, Opts.LangId)) + StringRef Val = InputArgs.getLastArgValue(WINDRES_language); + Val.consume_front_insensitive("0x"); + if (Val.getAsInteger(16, Opts.LangId)) fatalError("Invalid language id: " + InputArgs.getLastArgValue(WINDRES_language)); } @@ -565,7 +566,9 @@ } Opts.AppendNull = InputArgs.hasArg(OPT_add_null); if (InputArgs.hasArg(OPT_lang_id)) { - if (InputArgs.getLastArgValue(OPT_lang_id).getAsInteger(16, Opts.LangId)) + StringRef Val = InputArgs.getLastArgValue(OPT_lang_id); + Val.consume_front_insensitive("0x"); + if (Val.getAsInteger(16, Opts.LangId)) fatalError("Invalid language id: " + InputArgs.getLastArgValue(OPT_lang_id)); }