summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/CommandLine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement TokenizeWindowsCommandLine.Rui Ueyama2013-07-301-1/+101
| | | | | | | | | | This is a follow up patch for r187390 to implement the parser for the Windows-style command line. This should follow the rule as described at http://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft(v=vs.85).aspx Differential Revision: http://llvm-reviews.chandlerc.com/D1235 llvm-svn: 187430
* Don't leak when expanding response files.Rafael Espindola2013-07-241-17/+15
| | | | | | | | | | | | | | Before this patch we would strdup each argument. If one was a response file, we would replace it with the response file contents, leaking the original strdup result. We now don't strdup the originals and let StringSaver free any memory it allocated. This also saves a bit of malloc traffic when response files are not used. Leak found by the valgrind build bot. llvm-svn: 187042
* [Support] Beef up and expose the response file parsing in llvm::clReid Kleckner2013-07-181-62/+141
| | | | | | | | | | | | | | | | | | | The plan is to use it for clang and lld. Major behavior changes: - We can now parse UTF-16 files that have a byte order mark. - PR16209: Don't drop backslashes on the floor if they don't escape anything. The actual parsing loop was based on code from Clang's driver.cpp, although it's been rewritten to track its state with control flow rather than state variables. Reviewers: hans Differential Revision: http://llvm-reviews.chandlerc.com/D1170 llvm-svn: 186587
* Don't use PathV1 in CommandLine.cpp.Rafael Espindola2013-06-121-22/+10
| | | | | | No functionality change. llvm-svn: 183842
* Fix 'gcc -flto' builds for unittest binaries (undefined reference toPatrik Hagglund2013-06-121-1/+0
| | | | | | | | | `typeinfo for llvm::cl::GenericOptionValue'). Remove an "anchor" method for an abstract class. (This does not increase the number of vtables.) llvm-svn: 183830
* Include PathV1.h in files that use it.Rafael Espindola2013-06-111-0/+1
| | | | | | This is preparation for replacing Path.h with PathV2.h. llvm-svn: 183782
* Better output for long help strings for command-line options.Alexander Kornienko2013-05-101-8/+16
| | | | | | | | | | | | | | | | | | | | | Summary: This patch allows using \n inside long help strings for command-line options, so that all lines are equally indented. This is not a perfect solution, as we don't (and probably don't want to) know about terminal width, but it allows to format long help strings somehow readable without manually padding them with spaces. A motivating example is -help output from clang-format (source code in tools/clang-format/ClangFormat.cpp, see cl options offset, length, style, and dump-config). Reviewers: atrick, alexfh Reviewed By: alexfh CC: llvm-commits, rafael Differential Revision: http://llvm-reviews.chandlerc.com/D779 llvm-svn: 181608
* Implemented public interface for modifying registered (not positional or ↵Andrew Trick2013-05-061-0/+10
| | | | | | | | sink options) command line options at runtime. Patch by Dan Liew! llvm-svn: 181254
* Support command line option categories.Andrew Trick2013-05-061-20/+198
| | | | | | Patch by Dan Liew! llvm-svn: 181253
* Remove an unused member variable from HelpPrinter. Move another member ↵Craig Topper2013-03-091-6/+2
| | | | | | variable to be a local variable in the only method that uses it. llvm-svn: 176778
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-8/+8
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplifiedRafael Espindola2012-10-091-15/+11
| | | | | | the test. llvm-svn: 165535
* Remove tabs.Bill Wendling2012-07-191-4/+4
| | | | llvm-svn: 160479
* Don't cast away constant qualifier.Duncan Sands2012-03-121-1/+1
| | | | llvm-svn: 152553
* Correct use of const in ParseCommandLineOptionsDavid Blaikie2012-02-071-5/+5
| | | | llvm-svn: 149999
* Tidy up. s/Low Level Virtual Machine/LLVM/.Jim Grosbach2012-01-251-1/+1
| | | | | | LLVM isn't an acronym anymore. llvm-svn: 148985
* Remove dead default.David Blaikie2012-01-231-1/+0
| | | | llvm-svn: 148738
* Removing unused default switch cases in switches over enums that already ↵David Blaikie2012-01-161-6/+0
| | | | | | | | account for all enumeration values explicitly. (This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them) llvm-svn: 148262
* revert r147542 after comments from Joerg SonnenbergerSebastian Pop2012-01-051-1/+0
| | | | llvm-svn: 147608
* use getHostTriple instead of getDefaultTargetTriple in getClosestTargetForJITSebastian Pop2012-01-041-0/+1
| | | | | | | | | | Get back getHostTriple. For JIT compilation, use the host triple instead of the default target: this fixes some JIT testcases that used to fail when the compiler has been configured as a cross compiler. llvm-svn: 147542
* Add some missing anchors.David Blaikie2011-12-011-0/+3
| | | | llvm-svn: 145578
* rename getHostTriple into getDefaultTargetTripleSebastian Pop2011-11-011-1/+1
| | | | llvm-svn: 143502
* CommandLine: Add support for 64 bit unsigned integer options.Benjamin Kramer2011-09-151-0/+13
| | | | llvm-svn: 139848
* Move the registered target printing in version strings completely out ofChandler Carruth2011-07-221-7/+2
| | | | | | | | | | | | | | | | | the Support library. Now its part of the TargetRegistry, and the three commands that care about this explicitly register this extra bit of version information. The set of commands which care was computed by intersecting those which use the Support library's version string printing and those that initialize all the registered targets in a way that produces a meaningful list. The only odd ball out is that 'clang -cc1as -version' no longer prints the registered targets. I don't think anyone is really interested in that (especially as the fact that llvm-mc does so is under a FIXME), but if someone really does want this back I'll happily apply the same patch there. llvm-svn: 135757
* Move the logic for printing the registered targets into a staticChandler Carruth2011-07-221-26/+5
| | | | | | | function on the TargetRegistry. Also clean it up and use the modern LLVM utility libraries available instead of rolling a few things manually. llvm-svn: 135756
* Add an extension point to the CommandLine library where clients canChandler Carruth2011-07-221-3/+22
| | | | | | | | | | | | register extra version information to be printed. This is designed to allow those tools which link in various targets to also print those registered targets under --version. Currently this printing logic is embedded into the Support library directly; a huge layering violation. This is the first step to hoisting it out into the tools without adding lots of duplicated code. llvm-svn: 135755
* Aliased flag options should be directed to stdout, not stderr to be ↵Evan Cheng2011-06-131-2/+2
| | | | | | consistent. Patch by Julien Lerouge. llvm-svn: 132931
* In option typo correction, consider -foo=VALUE flags as two distinct parts. TheNick Lewycky2011-05-021-5/+12
| | | | | | | | | | comments claimed it did this, but the LHS value was actually an unused variable. The new system considers only the '-foo' part when comparing it for typos against flags that have values, but still look at the whole string for flags that don't. That way, we'll still correct '-inst=combine' to '-instcombine'. llvm-svn: 130685
* Fix a few instances of "warning: extra ';' outside of a function [-pedantic]".Frits van Bommel2011-04-061-7/+7
| | | | llvm-svn: 129002
* Added *hidden* flags -print-options and -print-all-options soAndrew Trick2011-04-051-26/+150
| | | | | | | | | | | | | | | | | | | developers can see if their driver changed any cl::Option's. The current implementation isn't perfect but handles most kinds of options. This is nice to have when decomposing the stages of compilation and moving between different drivers. It's also a good sanity check when comparing results produced by different command line invocations that are expected to produce the comparable results. Note: This is not an attempt to prolong the life of cl::Option. On the contrary, it's a placeholder for a feature that must exist when cl::Option is replaced by a more appropriate framework. A new framework needs: a central option registry, dynamic name lookup, non-global containers of option values (e.g. per-module, per-function), *and* the ability to print options values and their defaults at any point during compilation. llvm-svn: 128910
* Support/CommandLine: Fix LookupNearestOption to also search extra option names.Daniel Dunbar2011-01-241-10/+25
| | | | llvm-svn: 124124
* Support/CommandLine: Add "Did you mean" print for mismatched operands.Daniel Dunbar2011-01-181-0/+39
| | | | llvm-svn: 123717
* Support/PathV1: Deprecate getLast.Michael J. Spencer2010-12-181-1/+1
| | | | llvm-svn: 122116
* MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> ↵Michael J. Spencer2010-12-161-6/+3
| | | | | | via an out parm. llvm-svn: 121958
* Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with ↵Michael J. Spencer2010-12-091-1/+3
| | | | | | error_code &ec. And fix clients. llvm-svn: 121379
* Merge System into Support.Michael J. Spencer2010-11-291-2/+2
| | | | llvm-svn: 120298
* Fix a use after free. Patch by Frits van Bommel.Rafael Espindola2010-11-191-6/+9
| | | | llvm-svn: 119842
* Add new configure option, --disable-timestamps, intended to turn off ↵Daniel Dunbar2010-05-101-0/+2
| | | | | | | | | anything which would mess up binary/object comparisons. Currently: - Disables 'Built on ...' in 'foo --version'. - Disables timestamps from being embedded into .dir files. llvm-svn: 103423
* Fix minor style issues.Dan Gohman2010-03-241-2/+2
| | | | llvm-svn: 99414
* Refer to -help instead of --help since this is what tools themselves say.Duncan Sands2010-02-181-7/+7
| | | | | | | | Also, have tools output -help-hidden rather than refer to --help-hidden, for consistency, and likewise adjust documentation. This doesn't change every mention of --help, only those which seemed clearly safe. llvm-svn: 96578
* Replace strcpy with memcpy when we have the length around anyway.Benjamin Kramer2010-01-281-2/+3
| | | | llvm-svn: 94746
* Suppress use of uninitialized variable warning.Duncan Sands2010-01-091-1/+1
| | | | llvm-svn: 93046
* Change errs() to dbgs().David Greene2010-01-051-3/+3
| | | | llvm-svn: 92646
* Print a newline after the Args: line so that unrelated errs() output doesn'tDan Gohman2009-12-031-1/+2
| | | | | | end up on the same line. llvm-svn: 90473
* Perform explicit instantiations in the proper namespace, since Clang ↵Douglas Gregor2009-11-251-0/+2
| | | | | | diagnoses this ill-formity. llvm-svn: 89846
* Move the handling of CommaSeparated options into ProvideOption.Mikhail Glushenkov2009-11-201-23/+33
| | | | | | | | Makes '--comma-separated val1,val2' mean the same thing as '--comma-separated=val1,val2' (that is, 'val1' and 'val2' are not lumped together as 'val1,val2'). Also declutters the main loop a bit. llvm-svn: 89463
* Trailing whitespace.Mikhail Glushenkov2009-11-191-25/+25
| | | | llvm-svn: 89364
* Revert CPU detection code to return "generic" instead of an empty string in caseBenjamin Kramer2009-11-171-1/+1
| | | | | | | of failure. The x86 target didn't like empty cpu names and broke x86 tests on non-x86 buildbots. llvm-svn: 89111
* Report the detected host CPU in --version.Daniel Dunbar2009-11-141-0/+3
| | | | llvm-svn: 88813
* Show command-line args and features passed into backend in debug output. ↵Sandeep Patel2009-11-111-0/+6
| | | | | | Approved by Evan Cheng. llvm-svn: 86797
OpenPOWER on IntegriCloud