diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-08 03:43:51 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-08 03:43:51 +0000 |
commit | 00a7b52385a25ab8cd412ce4c0f0ce11176b6793 (patch) | |
tree | b6e9c73895e61d1849c8009ac4264c99cbb890c5 | |
parent | 4da69c77cf3719782f04ea1ec3d1f5fca583e325 (diff) | |
download | external_llvm-00a7b52385a25ab8cd412ce4c0f0ce11176b6793.zip external_llvm-00a7b52385a25ab8cd412ce4c0f0ce11176b6793.tar.gz external_llvm-00a7b52385a25ab8cd412ce4c0f0ce11176b6793.tar.bz2 |
Remove AllowInverse: it leaks memory and is not the right
abstraction for CommandLine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68588 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/CommandLine.html | 17 | ||||
-rw-r--r-- | include/llvm/Support/CommandLine.h | 6 | ||||
-rw-r--r-- | lib/Support/CommandLine.cpp | 21 |
3 files changed, 2 insertions, 42 deletions
diff --git a/docs/CommandLine.html b/docs/CommandLine.html index 013ff27..74cf389 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -1447,17 +1447,6 @@ unrecognized option strings to it as values instead of signaling an error. As with <b><tt>cl::CommaSeparated</tt></b></a>, this modifier only makes sense with a <a href="#cl::list">cl::list</a> option.</li> -<li><a name="cl::AllowInverse">The <b><tt>cl::AllowInverse</tt></b></a> -modifier can be used on options that have the form <tt>-fopt</tt> to -automatically create a corresponding -<tt>-fno-opt</tt> option. The <tt>f</tt> can be any single -character, and the <tt>opt</tt> can be any one or more characters. -The value of the created option is the logical complement of the value -that would have been used if the base form of the option was used. -This modifier only makes sense with an option that uses -a <a href="#boolparser">bool parser</a>.</li> - - </ul> <p>So far, these are the only three miscellaneous option modifiers.</p> @@ -1755,11 +1744,7 @@ for any data type.</li> <li><a name="boolparser">The <b><tt>parser<bool></tt> specialization</b></a> is used to convert boolean strings to a boolean value. Currently accepted strings are "<tt>true</tt>", "<tt>TRUE</tt>", "<tt>True</tt>", "<tt>1</tt>", -"<tt>false</tt>", "<tt>FALSE</tt>", "<tt>False</tt>", and "<tt>0</tt>". The -<b><tt>cl::AllowInverse</tt></b> modifier can be used on an option of the form -<tt>-fopt</tt> that uses the <tt>parser<bool></tt> specialization -to create a corresponding option with the form <tt>-fno-opt</tt>. See -<a href="#cl::AllowInverse"><tt>cl::AllowInverse</tt></a> for details.</li> +"<tt>false</tt>", "<tt>FALSE</tt>", "<tt>False</tt>", and "<tt>0</tt>".</li> <li><a name="boolOrDefaultparser">The <b><tt>parser<boolOrDefault></tt> specialization</b></a> is used for cases where the value is boolean, diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h index 6b05e60..1b62558 100644 --- a/include/llvm/Support/CommandLine.h +++ b/include/llvm/Support/CommandLine.h @@ -127,8 +127,7 @@ enum MiscFlags { // Miscellaneous flags to adjust argument CommaSeparated = 0x200, // Should this cl::list split between commas? PositionalEatsArgs = 0x400, // Should this positional cl::list eat -args? Sink = 0x800, // Should this cl::list eat all unknown options? - AllowInverse = 0x1000, // Can this option take a -Xno- form? - MiscMask = 0x1E00 // Union of the above flags. + MiscMask = 0xE00 // Union of the above flags. }; @@ -538,17 +537,14 @@ struct basic_parser : public basic_parser_impl { // template<> class parser<bool> : public basic_parser<bool> { - bool IsInvertible; // Should we synthesize a -xno- style option? const char *ArgStr; public: - void getExtraOptionNames(std::vector<const char*> &OptionNames); // parse - Return true on error. bool parse(Option &O, const char *ArgName, const std::string &Arg, bool &Val); template <class Opt> void initialize(Opt &O) { - IsInvertible = (O.getMiscFlags() & llvm::cl::AllowInverse); ArgStr = O.ArgStr; } diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp index 710b210..e4f65ba 100644 --- a/lib/Support/CommandLine.cpp +++ b/lib/Support/CommandLine.cpp @@ -872,30 +872,9 @@ bool parser<bool>::parse(Option &O, const char *ArgName, return O.error(": '" + Arg + "' is invalid value for boolean argument! Try 0 or 1"); } - if (IsInvertible && strncmp(ArgName+1, "no-", 3) == 0) - Value = !Value; return false; } -void parser<bool>::getExtraOptionNames(std::vector<const char*> &OptionNames) { - if (!IsInvertible) - return; - - char *s = new char [strlen(ArgStr) + 3 + 1]; - s[0] = ArgStr[0]; - if (strncmp(ArgStr+1, "no-", 3) == 0) - strcpy(&s[1], &ArgStr[4]); - else { - s[1] = 'n'; - s[2] = 'o'; - s[3] = '-'; - strcpy(&s[4], ArgStr+1); - } - OptionNames.push_back(s); -} - - - // parser<boolOrDefault> implementation // bool parser<boolOrDefault>::parse(Option &O, const char *ArgName, |