Option parsing: add support for alias arguments.
authorHans Wennborg <hans@hanshq.net>
Wed, 31 Jul 2013 22:44:41 +0000 (22:44 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 31 Jul 2013 22:44:41 +0000 (22:44 +0000)
commit9dd8c0cffe7de82900823c05159bba765120f1e3
tree79572820d2cf0d73ef30d9a6b90c2c3302ac57bb
parent03fb46bed1a1489725e0da3dea4608d6ef6e6e4b
Option parsing: add support for alias arguments.

This makes option aliases more powerful by enabling them to
pass along arguments to the option they're aliasing.

For example, if we have a joined option "-foo=", we can now
specify a flag option "-bar" to be an alias of that, with the
argument "baz".

This is especially useful for the cl.exe compatible clang driver,
where many options are aliases. For example, this patch enables
us to alias "/Ox" to "-O3" (-O is a joined option), and "/WX" to
"-Werror" (again, -W is a joined option).

Differential Revision: http://llvm-reviews.chandlerc.com/D1245

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187537 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Option/OptParser.td
include/llvm/Option/OptTable.h
include/llvm/Option/Option.h
lib/Option/Option.cpp
unittests/Option/OptionParsingTest.cpp
unittests/Option/Opts.td
utils/TableGen/OptParserEmitter.cpp