From b5f39845417560b7a54342dcb013af82f83567b2 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 24 Apr 2019 02:40:20 +0000 Subject: [CommandLine] Provide parser instantiation to allow cl::opt on LP64 platforms Summary: And migrate opt to opt Fixes PR19665 Differential Revision: https://reviews.llvm.org/D60933 llvm-svn: 359068 --- llvm/lib/Support/CommandLine.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Support/CommandLine.cpp') diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp index 0050002ff05..2f3dc4d5092 100644 --- a/llvm/lib/Support/CommandLine.cpp +++ b/llvm/lib/Support/CommandLine.cpp @@ -54,6 +54,7 @@ template class basic_parser; template class basic_parser; template class basic_parser; template class basic_parser; +template class basic_parser; template class basic_parser; template class basic_parser; template class basic_parser; @@ -78,6 +79,7 @@ void parser::anchor() {} void parser::anchor() {} void parser::anchor() {} void parser::anchor() {} +void parser::anchor() {} void parser::anchor() {} void parser::anchor() {} void parser::anchor() {} @@ -1663,6 +1665,16 @@ bool parser::parse(Option &O, StringRef ArgName, StringRef Arg, return false; } +// parser implementation +// +bool parser::parse(Option &O, StringRef ArgName, StringRef Arg, + unsigned long &Value) { + + if (Arg.getAsInteger(0, Value)) + return O.error("'" + Arg + "' value invalid for ulong argument!"); + return false; +} + // parser implementation // bool parser::parse(Option &O, StringRef ArgName, @@ -1670,7 +1682,7 @@ bool parser::parse(Option &O, StringRef ArgName, unsigned long long &Value) { if (Arg.getAsInteger(0, Value)) - return O.error("'" + Arg + "' value invalid for uint argument!"); + return O.error("'" + Arg + "' value invalid for ullong argument!"); return false; } @@ -1851,6 +1863,7 @@ PRINT_OPT_DIFF(bool) PRINT_OPT_DIFF(boolOrDefault) PRINT_OPT_DIFF(int) PRINT_OPT_DIFF(unsigned) +PRINT_OPT_DIFF(unsigned long) PRINT_OPT_DIFF(unsigned long long) PRINT_OPT_DIFF(double) PRINT_OPT_DIFF(float) -- cgit v1.2.3