Commit Graph

51 Commits

Author SHA1 Message Date
Chad Rosier 58b662c3e3 [driver] Make sure to update the iterator end when erasing for Args.
llvm-svn: 137539
2011-08-12 23:38:19 +00:00
Chad Rosier 261f9ce371 Improved efficiency by using iterator returned by erase, rather then restarting.
Thanks to David Blaikie for pointing this out.

llvm-svn: 137051
2011-08-08 17:17:15 +00:00
Chad Rosier be10f9853c When the compiler crashes, the compiler driver now produces diagnostic
information including the fully preprocessed source file(s) and command line 
arguments.  The developer is asked to attach this diagnostic information to a 
bug report.
rdar://9575623

llvm-svn: 136702
2011-08-02 17:58:04 +00:00
Chris Lattner 0e62c1cc0b remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.

llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Chad Rosier 1988642124 Temporarily revert r135614 while I fix the cmake build.
llvm-svn: 135621
2011-07-20 21:16:17 +00:00
Chad Rosier e3805fc118 When the compiler crashes, the compiler driver now produces diagnostic information
including the fully preprocessed source file(s) and command line arguments.  The 
developer is asked to attach this diagnostic information to a bug report.

llvm-svn: 135614
2011-07-20 20:26:32 +00:00
Douglas Gregor 1cb4290b89 StringRef'ize clang::drive::Option::getName(), from Zach Wheeler!
llvm-svn: 134418
2011-07-05 16:56:25 +00:00
Nick Lewycky 6da90771c4 Remove stray emacs mode markers in all these files that was causing emacs to
open them in fundamental-mode instead of c++-mode.
Also twiddle whitespace for consistency in ToolChains.cpp.

llvm-svn: 122646
2010-12-31 17:31:54 +00:00
Rafael Espindola 7f73489c3f Fix PR8639 by making the "argument unused during compilation" less agressive. Now we
don't warn if an argument is not used because it is shadowed by a subsequent argument.

llvm-svn: 122281
2010-12-20 22:45:09 +00:00
Axel Naumann b151c3c2d6 Declare argv parameters as const char* const* instead of to char** to clarify that they are not modified, and to allow for string literals as arguments.
llvm-svn: 116200
2010-10-11 09:18:43 +00:00
Daniel Dunbar af68a88e68 Driver/Darwin: Pass -pie/-no_pie to the linker when -fpie/-fno-pie and friends
are explicitly given.

llvm-svn: 108297
2010-07-13 23:31:40 +00:00
Daniel Dunbar 5714fc5e8b Driver: Fix refacto in DerivedArgList::MakeSeparateArg.
llvm-svn: 105958
2010-06-14 20:20:44 +00:00
Daniel Dunbar 775d406043 Driver: Add an explicit argument translation phase to the driver itself. We are going to need this to handle things like -Xassembler, -Xpreprocessor, and -Xlinker which we might have to introspect.
llvm-svn: 105842
2010-06-11 22:00:26 +00:00
Daniel Dunbar 5c5d30b03a Driver: Get rid of the proxy support in DerivedArgList.
llvm-svn: 105841
2010-06-11 22:00:22 +00:00
Daniel Dunbar a442fd5da6 Driver: Fix arg_iterator typing to reflect that it is really an iterator over Arg*s.
llvm-svn: 105838
2010-06-11 22:00:13 +00:00
Daniel Dunbar 35cbfeba8f Driver: Eliminate Arg subclasses, which are now unnecessary.
llvm-svn: 105762
2010-06-09 22:31:08 +00:00
Daniel Dunbar 8f1ebabaf7 Driver: Change Arg to just hold the values directly, instead of implicitly
deriving them from the Arg type.

llvm-svn: 105760
2010-06-09 22:31:00 +00:00
Daniel Dunbar 26a95c6717 Driver: Add an explicit offset to JoinedArg and JoinedAndSeparateArg, so that
they can be independent of the exact option that created them.

llvm-svn: 105739
2010-06-09 18:49:38 +00:00
Daniel Dunbar bd3b1d40da Attempt to make MSVC happy.
llvm-svn: 104432
2010-05-22 05:05:12 +00:00
Benjamin Kramer 71b0bb9922 Try to fix MSVC build.
llvm-svn: 104371
2010-05-21 19:58:44 +00:00
Daniel Dunbar 3730048129 Driver: Move some argument lookup utilities into driver::ArgList.
llvm-svn: 104237
2010-05-20 16:54:55 +00:00
Daniel Dunbar 86d838970b Driver: Free synthesized derived arguments.
llvm-svn: 98262
2010-03-11 18:04:53 +00:00
Ted Kremenek 1a0c4d5900 Fix -Wsign-compare warnings reported by clang++.
llvm-svn: 98174
2010-03-10 19:09:31 +00:00
Daniel Dunbar b8c2f7d950 Add an arg_iterator, for iterating over a subset of arguments in an ArgList.
llvm-svn: 89860
2009-11-25 11:33:30 +00:00
Daniel Dunbar 8c00957008 Driver: Introduce OptSpecifier class for protecting access to an option id.
llvm-svn: 89310
2009-11-19 04:14:53 +00:00
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