diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-09-15 21:17:37 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-09-15 21:17:37 +0000 |
commit | 49fc9ddae6dbc8646fb5374ccf25b899b83a09f7 (patch) | |
tree | c336dd7e6692b1428e22ebcbca8776cce51e5dd2 /llvm/lib/Support/CommandLine.cpp | |
parent | f68cc12453a3db8226abc28b0358c9f88bcfc403 (diff) | |
download | bcm5719-llvm-49fc9ddae6dbc8646fb5374ccf25b899b83a09f7.tar.gz bcm5719-llvm-49fc9ddae6dbc8646fb5374ccf25b899b83a09f7.zip |
CommandLine: Add support for 64 bit unsigned integer options.
llvm-svn: 139848
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
-rw-r--r-- | llvm/lib/Support/CommandLine.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp index 839ec799d80..238adcce0a1 100644 --- a/llvm/lib/Support/CommandLine.cpp +++ b/llvm/lib/Support/CommandLine.cpp @@ -44,6 +44,7 @@ TEMPLATE_INSTANTIATION(class basic_parser<bool>); TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>); TEMPLATE_INSTANTIATION(class basic_parser<int>); TEMPLATE_INSTANTIATION(class basic_parser<unsigned>); +TEMPLATE_INSTANTIATION(class basic_parser<unsigned long long>); TEMPLATE_INSTANTIATION(class basic_parser<double>); TEMPLATE_INSTANTIATION(class basic_parser<float>); TEMPLATE_INSTANTIATION(class basic_parser<std::string>); @@ -62,6 +63,7 @@ void parser<bool>::anchor() {} void parser<boolOrDefault>::anchor() {} void parser<int>::anchor() {} void parser<unsigned>::anchor() {} +void parser<unsigned long long>::anchor() {} void parser<double>::anchor() {} void parser<float>::anchor() {} void parser<std::string>::anchor() {} @@ -1005,6 +1007,16 @@ bool parser<unsigned>::parse(Option &O, StringRef ArgName, return false; } +// parser<unsigned long long> implementation +// +bool parser<unsigned long long>::parse(Option &O, StringRef ArgName, + StringRef Arg, unsigned long long &Value){ + + if (Arg.getAsInteger(0, Value)) + return O.error("'" + Arg + "' value invalid for uint argument!"); + return false; +} + // parser<double>/parser<float> implementation // static bool parseDouble(Option &O, StringRef Arg, double &Value) { @@ -1150,6 +1162,7 @@ PRINT_OPT_DIFF(bool) PRINT_OPT_DIFF(boolOrDefault) PRINT_OPT_DIFF(int) PRINT_OPT_DIFF(unsigned) +PRINT_OPT_DIFF(unsigned long long) PRINT_OPT_DIFF(double) PRINT_OPT_DIFF(float) PRINT_OPT_DIFF(char) |