mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-16 11:08:09 +00:00
CommandLine: Add support for 64 bit unsigned integer options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139848 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f5b0accf43
commit
b3514569d0
@ -805,6 +805,28 @@ public:
|
|||||||
|
|
||||||
EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
|
EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// parser<unsigned long long>
|
||||||
|
//
|
||||||
|
template<>
|
||||||
|
class parser<unsigned long long> : public basic_parser<unsigned long long> {
|
||||||
|
public:
|
||||||
|
// parse - Return true on error.
|
||||||
|
bool parse(Option &O, StringRef ArgName, StringRef Arg,
|
||||||
|
unsigned long long &Val);
|
||||||
|
|
||||||
|
// getValueName - Overload in subclass to provide a better default value.
|
||||||
|
virtual const char *getValueName() const { return "uint"; }
|
||||||
|
|
||||||
|
void printOptionDiff(const Option &O, unsigned long long V, OptVal Default,
|
||||||
|
size_t GlobalWidth) const;
|
||||||
|
|
||||||
|
// An out-of-line virtual method to provide a 'home' for this class.
|
||||||
|
virtual void anchor();
|
||||||
|
};
|
||||||
|
|
||||||
|
EXTERN_TEMPLATE_INSTANTIATION(class basic_parser<unsigned long long>);
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// parser<double>
|
// parser<double>
|
||||||
//
|
//
|
||||||
|
@ -44,6 +44,7 @@ TEMPLATE_INSTANTIATION(class basic_parser<bool>);
|
|||||||
TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>);
|
TEMPLATE_INSTANTIATION(class basic_parser<boolOrDefault>);
|
||||||
TEMPLATE_INSTANTIATION(class basic_parser<int>);
|
TEMPLATE_INSTANTIATION(class basic_parser<int>);
|
||||||
TEMPLATE_INSTANTIATION(class basic_parser<unsigned>);
|
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<double>);
|
||||||
TEMPLATE_INSTANTIATION(class basic_parser<float>);
|
TEMPLATE_INSTANTIATION(class basic_parser<float>);
|
||||||
TEMPLATE_INSTANTIATION(class basic_parser<std::string>);
|
TEMPLATE_INSTANTIATION(class basic_parser<std::string>);
|
||||||
@ -62,6 +63,7 @@ void parser<bool>::anchor() {}
|
|||||||
void parser<boolOrDefault>::anchor() {}
|
void parser<boolOrDefault>::anchor() {}
|
||||||
void parser<int>::anchor() {}
|
void parser<int>::anchor() {}
|
||||||
void parser<unsigned>::anchor() {}
|
void parser<unsigned>::anchor() {}
|
||||||
|
void parser<unsigned long long>::anchor() {}
|
||||||
void parser<double>::anchor() {}
|
void parser<double>::anchor() {}
|
||||||
void parser<float>::anchor() {}
|
void parser<float>::anchor() {}
|
||||||
void parser<std::string>::anchor() {}
|
void parser<std::string>::anchor() {}
|
||||||
@ -1005,6 +1007,16 @@ bool parser<unsigned>::parse(Option &O, StringRef ArgName,
|
|||||||
return false;
|
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
|
// parser<double>/parser<float> implementation
|
||||||
//
|
//
|
||||||
static bool parseDouble(Option &O, StringRef Arg, double &Value) {
|
static bool parseDouble(Option &O, StringRef Arg, double &Value) {
|
||||||
@ -1150,6 +1162,7 @@ PRINT_OPT_DIFF(bool)
|
|||||||
PRINT_OPT_DIFF(boolOrDefault)
|
PRINT_OPT_DIFF(boolOrDefault)
|
||||||
PRINT_OPT_DIFF(int)
|
PRINT_OPT_DIFF(int)
|
||||||
PRINT_OPT_DIFF(unsigned)
|
PRINT_OPT_DIFF(unsigned)
|
||||||
|
PRINT_OPT_DIFF(unsigned long long)
|
||||||
PRINT_OPT_DIFF(double)
|
PRINT_OPT_DIFF(double)
|
||||||
PRINT_OPT_DIFF(float)
|
PRINT_OPT_DIFF(float)
|
||||||
PRINT_OPT_DIFF(char)
|
PRINT_OPT_DIFF(char)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user