diff options
| author | James Henderson <jh7370@my.bristol.ac.uk> | 2018-10-30 11:52:47 +0000 |
|---|---|---|
| committer | James Henderson <jh7370@my.bristol.ac.uk> | 2018-10-30 11:52:47 +0000 |
| commit | b3735ee14e7ad01ffc92baed2f7884d5fdbf1464 (patch) | |
| tree | 93c100bbca85fd993f3c26da84c9d71cf11b81bb | |
| parent | 1cc49d3ca85c24bfd700c633c00221eba415e46b (diff) | |
| download | llvm-b3735ee14e7ad01ffc92baed2f7884d5fdbf1464.zip llvm-b3735ee14e7ad01ffc92baed2f7884d5fdbf1464.tar.gz llvm-b3735ee14e7ad01ffc92baed2f7884d5fdbf1464.tar.bz2 | |
[llvm-size] Reject unknown radix values
This addresses https://bugs.llvm.org/show_bug.cgi?id=39403 by making
-radix an enumeration option with 8, 10, and 16 as the only accepted
values.
Reviewed by: jhenderson, MaskRay
Differential Revision: https://reviews.llvm.org/D53799
Patch by Eugene Sharygin
llvm-svn: 345588
| -rw-r--r-- | llvm/tools/llvm-size/llvm-size.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/tools/llvm-size/llvm-size.cpp b/llvm/tools/llvm-size/llvm-size.cpp index ed53bac..ad1aefc 100644 --- a/llvm/tools/llvm-size/llvm-size.cpp +++ b/llvm/tools/llvm-size/llvm-size.cpp @@ -71,9 +71,11 @@ ArchFlags("arch", cl::desc("architecture(s) from a Mach-O file to dump"), static bool ArchAll = false; enum RadixTy { octal = 8, decimal = 10, hexadecimal = 16 }; -static cl::opt<unsigned int> -Radix("radix", cl::desc("Print size in radix. Only 8, 10, and 16 are valid"), - cl::init(decimal)); +static cl::opt<RadixTy> Radix( + "radix", cl::desc("Print size in radix"), cl::init(decimal), + cl::values(clEnumValN(octal, "8", "Print size in octal"), + clEnumValN(decimal, "10", "Print size in decimal"), + clEnumValN(hexadecimal, "16", "Print size in hexadecimal"))); static cl::opt<RadixTy> RadixShort(cl::desc("Print size in radix:"), @@ -865,7 +867,7 @@ int main(int argc, char **argv) { if (OutputFormatShort.getNumOccurrences()) OutputFormat = static_cast<OutputFormatTy>(OutputFormatShort); if (RadixShort.getNumOccurrences()) - Radix = RadixShort; + Radix = RadixShort.getValue(); for (unsigned i = 0; i < ArchFlags.size(); ++i) { if (ArchFlags[i] == "all") { |
