Commit Graph

26 Commits

Author SHA1 Message Date
Daniel Dunbar fffd18167d Driver: Switch to using explicit {getLast,has}ArgNoClaim functions instead of taking a Claim argument.
- Most driver code always claims, and bool arguments don't play nice with the overloads.

llvm-svn: 89308
2009-11-19 04:00:53 +00:00
Daniel Dunbar 5f620c1fac StringRefize ArgList construction of ArgStrings.
llvm-svn: 81385
2009-09-09 22:32:26 +00:00
Mike Stump 11289f4280 Remove tabs, and whitespace cleanups.
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Bill Wendling d63bbadbef Add stack protector support to clang. This generates the 'ssp' and 'sspreq'
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.

llvm-svn: 74405
2009-06-28 07:36:13 +00:00
Daniel Dunbar 3ba94d8778 Add option for AddAllArgsTranslated to control whether output argument
should be joined or separate.

llvm-svn: 70101
2009-04-26 01:07:52 +00:00
Daniel Dunbar 30bf11e181 Driver: Add default for ArgList::hasFlag and simplify implementation.
llvm-svn: 68549
2009-04-07 21:08:57 +00:00
Daniel Dunbar c2a7189048 Driver: Explicitly ignore -fpch-preprocess when using clang, we don't
need to do anything special to support this.

llvm-svn: 68403
2009-04-03 20:51:31 +00:00
Daniel Dunbar 13357aef14 Driver: Unbreak ArgList::hasFlag.
- <rdar://problem/6726511> [driver] clang does not have -msoft-float
   hooked up.

llvm-svn: 68044
2009-03-30 18:13:26 +00:00
Daniel Dunbar 53b406f40a Driver: Track which original arguments an arg is derived from, so that
we can properly claim arguments, even if they have been translated by
the tool chain.

llvm-svn: 68020
2009-03-29 22:29:05 +00:00
Daniel Dunbar 4e5696b984 Driver: Add ArgList::AddAllArgsTranslated; for forwarding options to
tools with the name of the option replace, and arguments rendered
separately.

llvm-svn: 67753
2009-03-26 15:39:22 +00:00
Daniel Dunbar dac54a81df Driver: Prep for tool chain specific argument translation.
- Lift ArgList to a base class for InputArgList and DerivedArgList.
 
 - This is not a great decomposition, but it does embed the
   translation into the type system, and keep things efficient for
   tool chains that don't want to do any translation.

 - No intended functionality change.

Eventually I hope to get rid of tool chain specific translation and
have each tool do the right thing, but for now this is the easiest way
to match gcc precisely (which is good for testing).

llvm-svn: 67676
2009-03-25 04:13:45 +00:00
Daniel Dunbar 9ea0e77572 Driver: ArgList::getLastArg was in fact returning the first matching arg.
- <rdar://problem/6715818> clang doesn't honor gcc semantic that last
    -O optimization option wins.

llvm-svn: 67628
2009-03-24 17:31:30 +00:00
Daniel Dunbar d8500f3b0f Driver: Implement 'missing argument' error.
llvm-svn: 67490
2009-03-22 23:26:43 +00:00
Daniel Dunbar e81cc832f6 Driver: Add two option overload for AddAllArgValues.
llvm-svn: 67377
2009-03-20 15:59:01 +00:00
Daniel Dunbar 7591f29f7c Driver: Add argument translation utilities to ArgList.
- Support things like telling which -ffoo -fno-foo option won, and
   forwarding all arguments matching a certain set of options to the
   tool.

llvm-svn: 67189
2009-03-18 09:29:36 +00:00
Daniel Dunbar 62ca7d23ce Driver: Fix typo ArgList destructor.
llvm-svn: 67101
2009-03-17 20:44:29 +00:00
Daniel Dunbar c1b70b2039 Driver: Add two option form of ArgList::getLastArg.
llvm-svn: 67090
2009-03-17 18:51:42 +00:00
Daniel Dunbar 527e2b3f8c Add ArgList::MakeArgString and make ArgList::Make* const.
- Slightly strange, but the idea is that the ArgList data structure
   is primarily a list of arguments; we want to allow clients to still
   add argument strings to an ArgList to avoid worrying about string
   lifetimes (or unnecessary string copying).

llvm-svn: 67086
2009-03-17 17:51:18 +00:00
Daniel Dunbar ae0e55eb7f Driver: Update ArgList::{hasArg,getLastArg} to optionally claim the
arguments if they exist.

llvm-svn: 67014
2009-03-15 00:48:16 +00:00
Daniel Dunbar dfab7abdea Driver: Fix think in ArgList::MakeIndex.
llvm-svn: 66908
2009-03-13 17:25:24 +00:00
Daniel Dunbar 7c8d653a2c Driver: Add ArgList support for synthesizing arguments.
llvm-svn: 66805
2009-03-12 18:20:18 +00:00
Daniel Dunbar 7586bb9de8 Driver: Add ArgList::getLastArg.
llvm-svn: 66794
2009-03-12 16:03:38 +00:00
Daniel Dunbar 33699689ed Driver: Fix thinko in Arg::hasArg.
llvm-svn: 66785
2009-03-12 08:45:11 +00:00
Daniel Dunbar 2c3939cb5d Driver: Add ArgList::hasArg, for testing for the presence of an
argument matching some Option::ID.

llvm-svn: 66758
2009-03-12 01:36:44 +00:00
Daniel Dunbar 16b9fd447a Driver: Add ArgList::{append, getArgString}
llvm-svn: 66089
2009-03-04 22:40:08 +00:00
Daniel Dunbar 3e2cbc3161 Driver: Add ArgList implementation.
llvm-svn: 66037
2009-03-04 17:10:42 +00:00