History log of /external/clang/lib/Driver/Driver.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/Driver/Driver.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/Driver/Driver.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/Driver/Driver.cpp
c6911a2b1fc176e4d6053ed86506c17c3d8b0057 01-Nov-2013 Peter Collingbourne <peter@pcc.me.uk> SanitizerArgs: add ability to filter/diagnose unsupported sanitizers.

The thread, memory, dataflow and function sanitizers are now diagnosed if
enabled explicitly on an unsupported platform. Unsupported sanitizers which
are enabled implicitly (as part of a larger group) are silently disabled. As a
side effect, this makes SanitizerArgs parsing toolchain-dependent (and thus
essentially reverts r188058), and moves SanitizerArgs ownership to ToolChain.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b405c954815f2c05a0baac2e2996bf00406ce464 19-Oct-2013 Hans Wennborg <hans@hanshq.net> clang-cl: diagnose setting asm listing filename with multiple inputs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
82a2911a94947e20ac4fd961b6322adf74ad9224 17-Oct-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Add support for asm listings (/FA and /Fa)

This adds support for outputing the assembly to a file during compilation.
It does this by changing the compilation pipeling to not use the integrated
assembler, and keep the intermediate assembler file.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4e490e271ce3f0d4289b5115e000b55333c1b829 11-Oct-2013 Robert Lytton <robert@xmos.com> XCore target: add an xcore toolchain implementation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4ab39dec0864706d1e69840b5d4c028f02f0b38f 25-Sep-2013 Rafael Espindola <rafael.espindola@gmail.com> Produce an error if a -cc1 only option is passed to the driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
06b52b41a98fff69c1c68baf24316eafd8d5a47b 24-Sep-2013 Rafael Espindola <rafael.espindola@gmail.com> Produce errors for unknown options.

This doesn't change a lot since clang still thinks it knows all of the
-f*, -m* and -W* options for example.

Other than the options clang explicitly claims to know, this fixes pr9701.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
76da17821632cf7d8f1b8faf4e011c2fd384a9e9 19-Sep-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Don't warn about overriding /MD with /MT, /Fo with another /Fo, etc.

I put in the warnings because MSVC has them, but I don't think they're very
useful.

Clang does not warn about overriding flags in general, e.g. it's perfectly
fine to have -fomit-frame-pointer followed by -fno-omit-frame-pointer.

We should focus on warning where things get confusing, such as with the
/TP and /TC options. In "clang-cl /TC a.c /TP b.cc", the user might not
realize that the /TP flag will apply to both files, and we warn about that.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d8df3f70930b2251119ed363a7fde737c76af784 17-Sep-2013 Hans Wennborg <hans@hanshq.net> clang-cl: ignore compile-only options in link-only invocations.

Previously we would warn about unused arguments such as /MD when linking.
Clang already has logic to ignore compile-only options, e.g. for -D and -U.
This patch extends that to include clang-cl's compile-only options too.

Also, some clang-cl options should always be ignored. Doing this earlier
means they get ignored both for compilation and link-only invocations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fc3389701ead32709ba84825e4c06651065da2c0 12-Sep-2013 Hans Wennborg <hans@hanshq.net> Move Compilation::PrintJob and PrintDiagnosticJob into Job::Print.

This moves the code to Job.cpp, which seems like a more natural fit,
and replaces the "is this a JobList? is this a Command?" logic with
a virtual function call.

It also removes the code duplication between PrintJob and
PrintDiagnosticJob and simplifies the code a little.

There's no functionality change here, except that the Executable is
now always printed within quotes, whereas it would previously not be
quoted in crash reports, which I think was a bug.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
42ade496f79d2b9b1ff9fbdc30dd025c168be7a3 11-Sep-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Warn about overriding /MD with /MT etc.

This also bakes the /M options into a separate option group to make
them easier to refer to from the code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6d0a8d56b4386bd3f1091bf15d88491ad1299913 10-Sep-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Support building DLLs (PR17083)

This adds driver support for building DLLs (the /LD and /LDd flags).
It basically does two things: runtime selection and passing -dll and
-implib to the linker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a6e7e496c96f1325afbbae87415776a6b86a1097 05-Sep-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Use .obj as extension for unnamed object files (PR17095)

We already use .obj as extension when the user provides a stem file
name (via /Fo), but were failing in the most basic case when the file
name is based on the input file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a673dbda6f67dbeb06aa2f99312200c8f5034cab 03-Sep-2013 Rafael Espindola <rafael.espindola@gmail.com> Use -### instead of -ccc-print-options.

Convert the last few tests using -ccc-print-options to -### and remove
-ccc-print-options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6db9088fc496acfc365485178d4712aba41c61ee 25-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Produce an error when trying to link with -emit-llvm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3b0f62b8c05131df90ca7c9fe054c6c960594e4b 23-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't imply -flto with -O4.

We now saturate at -O3.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
223ccb4328e7b22db2aa3559c8fca1fd3343820d 23-Aug-2013 Shuxin Yang <shuxin.llvm@gmail.com> Driver::IsUsingLTO() no longer return true when seeing -emit-llvm.

One step toward differentiating following two commands:
clang -O3 -flto a.c -c, and
clang -O3 -emit-llvm a.c

Thanks many awesome folks for clarifying things.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1b8f12d46c10169bb949372ec5fc4c58afc2ced1 19-Aug-2013 Alexey Samsonov <samsonov@google.com> Move SanitizerArgs to the clang Driver

Summary:
This change turns SanitizerArgs into high-level options
stored in the Driver, which are parsed lazily. This fixes an issue of multiple copies of the same diagnostic message produced by sanitizer arguments parser.

Reviewers: rsmith

Reviewed By: rsmith

CC: chandlerc, eugenis, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cb2e182b404f19d6b039b072cec4acdc4366880c 14-Aug-2013 Shuxin Yang <shuxin.llvm@gmail.com> revert 188352

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5dbab41b989c71ee80c74d7cfc50be43266ba5a6 14-Aug-2013 Shuxin Yang <shuxin.llvm@gmail.com> Driver::IsUsingLTO() no longer return true when seeing -emit-llvm.

The rationale for this change is to differentiate following two situations:
1) clang -c -emit-llvm a.c
2) clang -c -flto a.c

Reviewed by Eric Christopher. Thanks a lot!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5db9527a2e582c17bc835e6e2a5a8178efa5a1e8 14-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Support /link option and set target to win32

This adds support for the /link option, which forwards
subsequent arguments to the linker.

The test for this will only work when targetting win32.
Since that's the only target where clang-cl makes sense,
use that target by default.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
73052bf669d3fe4c202cff2792cfe215cf5727be 13-Aug-2013 Hans Wennborg <hans@hanshq.net> Handle "--" explicitly in the driver

Anything that comes after -- is treated as an input file. This
used to be handled automagically by the option parsing library,
but after LLVM r188314, we should handle it ourselves.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9c0ed9122da2ec12798459328ba63511b1aab7d4 13-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Sink /Fe and /Fo diagnostic code into BuildActions

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c65c72d198b02c0d90c6bcced655e4bb11ed3f37 12-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Support the /Fe option

This is used to name the linked output file.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f86c13921f6e2f586f4613ab3cb4a84c8693541f 12-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Expand warning about /TC and /TP override, and expand test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
909930fc19ff69b08f2ea6f6e2996d24c816f311 07-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Use .obj as object file extension instead of .o

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ab50ccd7f756a1e617ebd32471ba9565bb240d37 07-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Implement support for the /Fo option

This implements support for the /Fo option, which is used
to set the filename or output dir for object files.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4c587532e108725e38c5546976ee81c8bea04bb7 06-Aug-2013 Hans Wennborg <hans@hanshq.net> clang-cl: Implement the /Tc, /TC, /Tp and /TP options.

These are used to specify source files, and whether to treat source
files as C or C++.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
78d0fbfe3aa0dcf158fed95a51460e5d769447ee 31-Jul-2013 Hans Wennborg <hans@hanshq.net> clang-cl: add the /c, /W0 and /W1 options

This adds a few more clang-cl options. It also exposes two core clang
options to the clang-cl mode: we need to be able to claim --driver_mode
so it doesn't show up as unused in cl mode, and we need -### for tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6365ab91a0cf2f20c73ea9c39b55c14ab438018e 30-Jul-2013 Chandler Carruth <chandlerc@gmail.com> Start keeping track of what work was done to detect a GCC installation
on the system, and report it when running the driver in verbose mode.
Without this it is essentially impossible to understand why a particular
GCC toolchain is used by Clang for libstdc++, libgcc, etc.

This also required threading a hook through the toolchain layers for
a specific toolchain implementation to print custom information under
'clang -v'. The naming here isn't spectacular. Suggestions welcome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6981330cc231e4e2ccbd38679209e04b776483eb 27-Jul-2013 Hans Wennborg <hans@hanshq.net> clang-cl: add support for the /? and /help options

This establishes a new Flag in Options.td, which can be assigned to
options that should be made available in clang's cl.exe compatible
mode, and updates the Driver to make use of the flag.

(The whitespace change to CMakeLists forces the build to re-run CMake
and pick up the include dependency on the new .td file. This makes the
build work if someone moves backwards in commit history after this change.)

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ea7fb0ce25acc04664a2e7c2b24af03cef2c0d1f 26-Jul-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> [PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code. Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing. Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The new test case variant ensures that correct built-in defines for
little-endian code are generated.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7d3240d3c949b8d0697a23a202cceba4d1a2d21f 23-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the -ccc-echo option that is now unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c2f531a1300cc7a79cb8dde12cb993da82beba1b 19-Jul-2013 Hans Wennborg <hans@hanshq.net> Add a cl.exe compatible driver mode

The mode doesn't actually do anything yet, but this provides a
way to get into it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
33530b8e99085f736b0af5e1bc8fedaf80b5c90e 18-Jul-2013 Hans Wennborg <hans@hanshq.net> Address -Wreorder warning in Driver.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
76b86c2e79a58910a641d449f229889d671d8a38 18-Jul-2013 Hans Wennborg <hans@hanshq.net> Turn Driver::CCCIsCXX and CCCIsCPP into a single Mode enum,
and add a new option --driver-mode= to control it explicitly.

The CCCIsCXX and CCCIsCPP flags were non-overlapping, i.e. there
are currently really three modes that Clang can run in: gcc, g++
or cpp, so it makes sense to represent them as an enum.

Having a command line flag to control it helps testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b470d1a54877e7b3622e4cbdeae423c6d51be696 17-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Use the simpler is_directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d965f95daa97097c8ddc5e1165ceae585a888719 16-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Update for llvm API change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1ec4a86a867fc04f35d13bc9e33b04cf2171fe41 05-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Use llvm::sys::fs::createTemporaryFile.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
09d19efaa147762f84aed55efa7930bb3616a4e5 04-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4ea53ae85cd0388f3138c6d48604fc9407174dcc 25-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Add r184803 back now that the bug in unique_file has been fixed.

Original message:

Use the new PathV2 instead of implementing the logic in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
510312a69f2de521fc4450e67a40f03a4a217d44 25-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "Use the new PathV2 instead of implementing the logic in clang."

This reverts commit 184803 while I debug the failures on the bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fa09383ce9d6ea81a8fe86b2f26519c7a1c165fb 25-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove PathV1.h from Driver.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4a67613a9afaa8307c9de0d1d546a4316d335470 25-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use the new PathV2 instead of implementing the logic in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e8486301079d7487173555da330eedf5221030b5 24-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Convert some uses of llvm::sys::Path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
005835d6279ed210527368cb78475f8c155123e3 24-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use the simpler version of llvm::sys::fs::exists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9ff463e4af8615a019dbdce406dc50b74460fe2a 19-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use llvm::sys::fs::can_execute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a372f40dac73b69936f6a713df0808c740bb326c 17-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Include PathV1.h only where it is used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b1e25a1bc03292dc538d336573e0be1490223171 14-Jun-2013 Reid Kleckner <reid@kleckner.net> [Driver] Refactor clang driver to use LLVM's Option library

The big changes are:
- Deleting Driver/(Arg|Opt)*
- Rewriting includes to llvm/Option/ and re-sorting
- 'using namespace llvm::opt' in clang::driver
- Fixing the autoconf build by adding option everywhere

As discussed in the review, this change includes using directives in
header files. I'll make follow up changes to remove those in favor of
name specifiers.

Reviewers: espindola

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a603569515eea06e54e6e041b1c690d33086f375 12-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use the global functions instead of the Program methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bdaa13418851be5cc1ca3be88fbd82b15efecde7 27-May-2013 Peter Collingbourne <peter@pcc.me.uk> Driver: implement --dyld-prefix option.

This option is used to select a dynamic loader prefix to be used
at runtime. Currently this is implemented for the Linux toolchain.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1c18759b45140c85e62ac6367fbee51f363e3c81 01-May-2013 Chad Rosier <mcrosier@apple.com> [driver] Allow multiple -arch options with -save-temps by adding the arch name
to the temporary files.
rdar://13218604


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
073f5e87dc936c906dde5ae21ebed3c59ce3d8e2 29-Mar-2013 Jyotsna Verma <jverma@codeaurora.org> Hexagon: Set Hexagon tool-chain when configured as OSless target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
286f3e638fd842619f853127907398859367a464 28-Mar-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Handle pseudo-target flags '-EL' and '-EB' and properly adjust
toolchain flags for MIPS targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c544ba09695e300f31355af342258bd57619e737 27-Mar-2013 Douglas Gregor <dgregor@apple.com> <rdar://problem/13509689> Introduce -module-file-info option that provides information about a particular module file.

This option can be useful for end users who want to know why they
ended up with a ton of different variants of the "std" module in their
module cache. This problem should go away over time, as we reduce the
need for module variants, but it will never go away entirely.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
29511875348c49c9c5a14bb086cd51e17feb01c9 24-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Reject -no-integrated-as on windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4a792960940bf19acced0123eae08bd39b15138b 23-Mar-2013 Bob Wilson <bob.wilson@apple.com> Revert svn r176894 and r177658.

Changing -ccc-install-dir to affect cc1's resource-dir setting broke our
internal LNT tests. After discussing the situation with Jim, we've decided to
pursue an alternate approach. We really want the resource-dir to be located
relative to clang, even when using -ccc-install-dir, but we're going to
add a fallback setting for the libc++ headers if they don't exist alongside
the compiler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
76e6e1377ff837047fb8e03a199c7f286c53897b 23-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> If a .syms file is available alongside a sanitizer runtime, pass it to the
linker via --dynamic-list instead of using --export-dynamic. This reduces the
size of the dynamic symbol table, and thus of the binary (in some cases by up
to ~30%).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
26adbe42d1fecd135dea6739ec2801f02473218f 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
af370e6e051e505016637e23418354db625dc796 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Pass an ArgList to every toolchain constructor. Remove the useIntegratedAs
argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5470cd27e47aea163daaa76dde36010753400663 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Refactor a bit of duplicated code to useIntegratedAs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e5dce308870cd7d6b5156640af3724433bc1c575 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d5320184367b681087e9ff74fc57ed2c5954c8ec 18-Mar-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
61d16c1f491f5ad6d4a254dcca8868acb5f150cc 12-Mar-2013 Jim Grosbach <grosbach@apple.com> Driver: -ccc-install-dir should affect cc1 -resource-dir

-ccc-install-dir is supposed to cause the compiler to behave as-if it
were installed in the indicated location. It almost does, but misses
anything that's relying on the resource directory (libc++ header search,
in particular). The resource dir is resolved too early, before command
line args are handled.

The fix is simply to move handling of the resource dir until after we
know if a -ccc-install-dir is present.

rdar://13402696

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b9aa6739700d10e99da64cfa9b58ba7ca1c248e2 07-Mar-2013 Matthew Curtis <mcurtis@codeaurora.org> Minor refactor of how we get compilation phases.

There is now a single function to get the list of phases for a given
output Type.

No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bcf73c225324ecc227a88b35598ca809fcd1d5c8 26-Feb-2013 Chad Rosier <mcrosier@apple.com> No need to initialize these variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
59320e770f90a59c74f2be10f198e3c390195628 21-Feb-2013 Eric Christopher <echristo@gmail.com> Remove the SplitDebug action and replace with a set of commands
in the compilation setup. Note that this doesn't currently
work for -no-integrated-as.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f110a9c6876e36ef77a54b191ea4ecf3443ac620 18-Feb-2013 Eric Christopher <echristo@gmail.com> Fix up grammar a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0798b69ee40219ed276bd8a65efd46bedc78ac42 18-Feb-2013 Eric Christopher <echristo@gmail.com> Unify some code. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c706c8e440abf61910c042380e19c67932998395 05-Feb-2013 Eric Christopher <echristo@gmail.com> Driver and option support for -gsplit-dwarf. This is a part of
the DWARF5 split dwarf proposal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
75dbc717c21a662b7836ed34cc4e7da7b8fa33c0 01-Feb-2013 Chad Rosier <mcrosier@apple.com> [driver] Don't try to generate diagnostic information for dsymutil crashes.
Part of rdar://13134273


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8425a5413b437a0b6ac04c475e7cf54cc9977880 30-Jan-2013 Chad Rosier <mcrosier@apple.com> [driver] Clear the FailureResultFiles when initializing clang diagnostics. Also,
minor cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a16355c31878403443f99077cc8df8318457faf5 29-Jan-2013 Chad Rosier <mcrosier@apple.com> [driver] Refactor the driver so that a failing commands doesn't prevent
subsequent commands from being executed.

The diagnostics generation isn't designed for this use case, so add a note to
fix this in the very near future. For now, just generated the diagnostics for
the first failing command.
Part of rdar://12984531

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a522987e420eade60baba7d67a38e5c9500d2582 28-Jan-2013 Eric Christopher <echristo@gmail.com> Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9d718635fa805674aaba5d938f3dc6b35b8632ba 24-Jan-2013 Chad Rosier <mcrosier@apple.com> [driver] Associate a JobAction with each result file. This enables the driver
to delete result files for only those commands that fail.
Part of rdar://12984531

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5b9268f26ac53a74d2c504279fe577d988d5615d 20-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix code that attempted to produce a diagnostic with one DiagnosticEngine, then
produce a note for that diagnostic either with a different DiagnosticEngine or
after calling DiagnosticEngine::Reset(). That didn't make any sense, and did the
wrong thing if the original diagnostic was suppressed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
04ee66e1fee44e72ee57845c1405a7f498a9daf7 12-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> clang/lib/Driver/Driver.cpp: Split COMPILER_PATH according to llvm::sys::PathSeparator, that is ';' in Win32 hosts.

Thanks to Bogon Kim!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b3489a0d355128f1cc96fdde2a6b11a8361d6740 06-Dec-2012 Matthew Curtis <mcurtis@codeaurora.org> Hexagon TC: Update toolchain to add appropriate include
paths

- Inherit from Linux rather than ToolChain
- Override AddClangSystemIncludeArgs and AddClangCXXStdlibIncludeArgs
to properly set include paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
88a8fa366e1a76507ae2212f9c3f110df865c3a5 05-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> Driver.cpp: Restore clang/Config/config.h to be included at last not to prevent llvm-config.h.

Or "llvm/Support/system_error.h" could not be compiled on mingw.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
17c874a944090a74aa890d7b5ef361be6e4a0184 27-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove some dead code. CLANG_IS_PRODUCTION is now just a build flag and
is not used in any #ifdef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5bab9ae87c41148ee2f92d312945c1e9303222e8 15-Nov-2012 Nick Lewycky <nicholas@mxc.ca> Revert r167567, restoring the ability of clang to run gcc in cases where it
can't handle the input file type. This resulted in PR14338.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f1eaab122932a5c61b13ce9ae6d590e24558eb84 09-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> PR14303: Add a NoDriverOption flag to those options which are not accepted by
the driver (the options defined in CC1Options.td) and exclude their help from
"clang --help".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d2a527eae6df377b326e8d764782bc34f1e64189 08-Nov-2012 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: The -arch argument values aren't exactly the arch names from a
triple.

- Translate the special case of powerpc to its expected -arch name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
85b7f7ddf2f09778ec303f5a39f9e67e3aae1115 08-Nov-2012 Bob Wilson <bob.wilson@apple.com> Rip out a bunch of code for invoking gcc from clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
64c4f29ff3b98d412e0235504364096e997b04bb 08-Nov-2012 Bob Wilson <bob.wilson@apple.com> Remove code to fall back to llvm-gcc for i386 kexts.

More cleanups to follow in separate commits....

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
da05df7ac964abcd18956ffaf6d66ff13a203a11 08-Nov-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Driver] Fix -Wp,-MMD pr13959

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1d489cf4a04ad0ad8ac2696e4eed0995f3a67288 01-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Remove first argument from Arg::getValue; it's been unused since r105760.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cfed8283c3aeb03ddd837411467d19e250068d39 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> getArchTypeForDarwinArchName is only used in the clang driver, copy it there.
I will remove it from llvm in the next commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c91b41a64ccce6d1097d85c8c7354ea63a5566a0 31-Oct-2012 Chad Rosier <mcrosier@apple.com> [driver] Completely rework how superfluous options are stripped out of the crash
diagnostics script.

This addresses the FIXME pertaining to quoted arguments. We also delineate
between those flags that have an argument (e.g., -D macro, -MF file) and
those that do not (e.g., -M, -MM, -MG). Finally, we add the -dwarf-debug-flags
to the list of flags to be removed.
rdar://12329974

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bfd452ea9b362a0e5d8e2b8d599ad9f4092ce29e 31-Oct-2012 Simon Atanasyan <satanasyan@mips.com> Fix if-else braces layout accordingly to the style guide.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e01575447635fae1365fc94a8dbb82b31e86ab09 31-Oct-2012 Simon Atanasyan <satanasyan@mips.com> Extend -Bprefix functionality and make it closer to gcc. If the "prefix"
is not a directory, Driver::GetProgramPath() routine does not try to append
the program name as a "path component" to it. It just joins the "prefix" with
the program name and checks the resulting path existence.

The patch reviewed by Rafael Espindola.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8c610b075cb2f9dae1178ab881a0aa9f91b9bcd5 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove the -ccc-no-clang option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e6c3458723d954d1ba9b73a2d93d2e2d67dd3510 31-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove ccc-no-clang-cpp, which is also dead now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d2d4d68a58898c5d13d66d45a5d9440fc1d790fe 30-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> In the past "production" clang builds would not be used for c++, and
we had the -ccc-clang-cxx and -ccc-no-clang-cxx options to force them
on or off for testing.

Clang c++ support is now production quality and these options are dead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2902829d27ca3d3bb24d55dd99e8a218cc3a415f 30-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove a bit of dead code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ccb428bb04adaa909431d6e929b8f9e6bdbe7208 26-Oct-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [driver] Before applying the working directory check if the input path
is absolute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c635710bcbb9598acd5a14647ba7ca28bee89a68 23-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] Add prefixes to options.

Each option has a set of prefixes. When matching an argument such as
-funroll-loops. First the leading - is removed as it is a prefix. Then
a lower_bound search for "funroll-loops" is done against the option table by
option name. From there each option prefix + option name combination is tested
against the argument.

This allows us to support Microsoft style options where both / and - are valid
prefixes. It also simplifies the cases we already have where options come in
both - and -- forms. Almost every option for gnu-ld happens to have this form.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
91e06dab9335ed6b4474a74353549c708cf3d936 20-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] Make Option non clang specific.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f38523388174760dcbad810ef60d8504d7df6b4c 19-Oct-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.

This seems to have introduced assertion hit when building compiler-rt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d2deb91b02ae1d810719e4a5a63dc404f362575a 18-Oct-2012 Michael J. Spencer <bigcheesegs@gmail.com> [Options] Make Option non clang specific.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
238b6a9d33bf87e23f86866885394cd453a06495 09-Oct-2012 Rafael Espindola <rafael.espindola@gmail.com> The clang driver has a fairly fancy support for executing gcc instead of
clang itself. This dates back to clang's early days and while it looks like
some of it is still used (for kext for example), other parts are probably dead.

Remove the -ccc-clang-archs option and associated code. I don't think there
is any remaining setup where clang doesn't support an architecture but it can
expect an working gcc cross compiler to be available.

A nice side effect is that tests no longer need to differentiate architectures
that are included in production builds of clang and those that are not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
429fce9945f2792ca50c864de63ac3c0395e4ad5 04-Oct-2012 Logan Chien <tzuhsiang.chien@gmail.com> Fix typo in comments.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fc44e88cbdf013d285f2e4e3962fb80dcad56770 03-Oct-2012 Simon Atanasyan <satanasyan@mips.com> Remove useless parameter "WantFile" from Driver::GetProgramPath().
This parameter is useless because nowhere used explicitly and always
gets its default value - "false".

The patch reviewed by Rafael Espindola.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bd59a010b5f1242b548bda1384a7a0ebbabf552d 03-Oct-2012 Logan Chien <tzuhsiang.chien@gmail.com> Fix typo in comments.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a5ee089fffc9c98d454694f80e7b541e97ca495e 28-Sep-2012 Fariborz Jahanian <fjahanian@apple.com> Modern objcective-C translator. When doing rewriting, Do not
use the integrated pre-processor, preprocess in objective-c++ mode.
// rdar://12189793.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6f85b1e7906f7a03cbede1f730ba19b28a5f85e8 14-Sep-2012 Bob Wilson <bob.wilson@apple.com> Improve the driver title as shown in the --help message. <rdar://12297538>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4327557dfafe16c031691ed061f52a708e4c6b7a 20-Aug-2012 Michael J. Spencer <bigcheesegs@gmail.com> Make Option non virtual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
42f74f21ece01dc8573d5377859d327fbb23b26c 09-Aug-2012 Eli Friedman <eli.friedman@gmail.com> clang support for Bitrig (an OpenBSD fork); patch by David Hill.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b019489d42da42a2071986d74e454e39bde59039 07-Aug-2012 Ted Kremenek <kremenek@apple.com> Handle null suffixes in GetTemporaryPath (PCH files don't have suffixes).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
04c3a25bd45ad8a6ad715783aee03df7284c5591 06-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> PR13529: Don't crash if the driver sees an unused input file when running as
'clang-cpp'.

For now, the test uses "REQUIRES: shell" to determine if the host system
supports "ln -s", which it uses to create a 'clang-cpp' symlink. This is a bit
hacky and should likely be directly supported by lit.cfg.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
761322b3bdea727de087dcdf355fee689f5b8358 31-Jul-2012 Aaron Ballman <aaron@aaronballman.com> No longer emitting a PCH file when using -fsyntax-only on a header file. Fixes PR13343.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
699c6cd0b99f715b6638c8d49f1dfee22f30aabe 25-Jul-2012 Chad Rosier <mcrosier@apple.com> [driver crash diagnostics] Strip -internal-isystem and -internal-externc-isystem.
rdar://11949066

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a4ba28f3215b4ea70d0cf15026edbfb535e2f0d3 25-Jul-2012 Chad Rosier <mcrosier@apple.com> [driver crash diagnostics] Strip -idirafter, -iprefix, -iwithprefix,
-iwithprefixbefore, and -isystem options, per Matt's suggestion.
rdar://11949066

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
37302ead1c067ec984a75e847cd83c6881637e72 25-Jul-2012 Chad Rosier <mcrosier@apple.com> [driver crash diagnostics] A few enhancements:
-Strip -iquote and -M options.
-Quote -D options to avoid problems with command line macros that include
parens.
rdar://11949066

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
df9b933aa354b8108cee028cc4726cfa9f2df62c 17-Jul-2012 NAKAMURA Takumi <geek4civic@gmail.com> [Win32] Rework crash-report since r145389.

- lib/Driver/Driver.cpp, tools/driver/driver.cpp: Exit status should not be propagated, although clang driver should catch exceptions.
- test/Driver/crash-report.c: Add REQUIRES:shell for now.
FIXME: setenv should work also on Lit.InternalShellRunner.
- test/Driver/crash-report.c: Remove XFAIL.

Thanks to Chad, To point out the issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6467c9bf4f07f54789d3ed902f04048f4d80ad47 09-Jul-2012 Chad Rosier <mcrosier@apple.com> 80-column and whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ec956d82bceb1c471f4ae18541b78e431f7fbb20 02-Jul-2012 David Blaikie <dblaikie@gmail.com> Include -D files in crash report repro scripts. (PR13255)

Now that we're only using -frewrite-includes rather than full preprocessing
when producing repro source files, we should also include command line macro
definitions in the repro script.

I don't have a test case for this because I'm not sure if/how I can open the
crash report file when the name is only known by scraping the crash report
output. Suggestions welcome if anyone thinks it'd be helpful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e75d9cfbf41a0ee9e456a665776f91fdd9773b36 30-Jun-2012 David Blaikie <dblaikie@gmail.com> Use -frewrite-includes for crash reports.

In future changes we should:
* use __builtin_trap rather than derefing 'random' volatile pointers.
* avoid dumping temporary files into /tmp when running tests, instead
preferring a location that is properly cleaned up by lit.

Review by Chandler Carruth.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
13223073a94f8df6527193827192a326d50877fb 19-Jun-2012 Chad Rosier <mcrosier@apple.com> [driver] Per Bob's suggestion, emphasize the file dumps.
rdar://11684107

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4f6a4b47675a30e621251fcda1d192a2c17c6eea 19-Jun-2012 Chad Rosier <mcrosier@apple.com> [driver] Print the compiler version before the diagnostic messages.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
235a663d407182cb4e0f680df30ec9b6cfda0544 19-Jun-2012 Chad Rosier <mcrosier@apple.com> [driver] Make the crash diagnostic message more visable. Bug reports are being
filed, but still missing the preprocessed source and associated run script.
rdar://11684107

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f0fab767c8c272fc77699e82fd581ddf4d9d71fa 23-May-2012 Chad Rosier <mcrosier@apple.com> [driver] Have the crash diagnostics print the clang version information.
rdar://11518308


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d6277fb9e0353edffc0d6c8655a65542c08cf6f1 21-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [driver] When creating the compiler invocation out of command-line
arguments, force use of clang frontend for the driver.

Fixes rdar://11356765.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
832a2aac5766dd78f113e0f03a0c62fd0eacbc97 16-May-2012 Manuel Klimek <klimek@google.com> Pulls diagnostics for temp file handling into the common diagnostic kinds.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8775485350b2419cb9953518ace61cf68b1c9c18 04-May-2012 Chad Rosier <mcrosier@apple.com> StringRefize code because we're good even when we crash.
Patch by Jordy Rose.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
44727629b766bf34bc2299c40f5ee8e4c7a71391 04-May-2012 Chad Rosier <mcrosier@apple.com> [driver - crash diagnostics] Convert the flags back to an array of strings and use
array_lengthof. Also, append the new filename with correct preprocessed suffix.
Last part of rdar://11285725


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
53d2409a223a14d063faf06e4360ede09c41ed80 03-May-2012 Chad Rosier <mcrosier@apple.com> [driver - crash diagnostics] Only write the failing command in the script.
Part of rdar://11285725


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d83217cbfcfcde7b21a829483347e593e2f2a4a3 03-May-2012 Chad Rosier <mcrosier@apple.com> [driver crash diagnostics] Remove more flags that reference absolute paths that
aren't necessary to reproduce the clang crash.
Part of rdar://11285725


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bfd7a525bcf372004787cb641b8c1566b9e8aba5 01-May-2012 James Molloy <james.molloy@arm.com> Unify Options.td and CC1Options.td, in a first step towards unifying the serialization logic in Frontend and Driver.

Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8202fb8ee3c86797f737413de6030a88c8e0781c 27-Apr-2012 Chad Rosier <mcrosier@apple.com> [driver] Don't try to set the deployment target when there is no bound
architecture; this was happening for tools such as lipo and dsymutil.
Also, if no -arch option has been specified, set the architecture based
on the TC default.
rdar://11329656


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4e47dee72a19fbc4db256361f0e4056992551c53 27-Apr-2012 Chad Rosier <mcrosier@apple.com> Fix logic such that we only call getToolChain once. No functional change
intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1dcfe3412519cf6ffe65644d4d72ca1b4160d312 27-Apr-2012 Chad Rosier <mcrosier@apple.com> Remove redundant calls to BAA->getArchName(). No functional change
intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
61ada0a7a8e743a50f5f8305e2e49d4447212a69 20-Apr-2012 Chad Rosier <mcrosier@apple.com> In r135308, -save-temps was modified to prevent a temporary file from
overwriting the input file. For example,

clang -c foo.s -o foo.o -save-temps

Unfortunately, the original patch didn't compare the paths of the input and
output files. Thus, something like the following would fail to create foo.s.

cd /tmp/obj
clang -c ../src/foo.s -o foo.o -save-temps

rdar://11252615


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d2fb88300966b1bb5ade07b7574f34aa54c0a97a 20-Apr-2012 Chad Rosier <mcrosier@apple.com> When generating the clang crash diagnostic script, strip out the -o flag.
Add a FIXME comment.
rdar://11283560


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
80ec127fc9af8b83eea326fbd65265a1adc307d8 20-Apr-2012 Chad Rosier <mcrosier@apple.com> Add a little hack to emulate a clang crash, so the diagnostics generator can be
tested.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cc66b08945099b734b05d06179ea85413c69753d 20-Apr-2012 Chad Rosier <mcrosier@apple.com> When generating the clang crash diagnostic script, strip out the -D, -F, and -I
flags. We have preprocessed source, so we don't need these.

No test case as it's fairly difficult to make the compiler crash on demand. I'll
patiently wait for Ben to tell me how to do this in 2 lines of code. :)
rdar://11283560


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4762a2da74875d2ae94e0d77d38ed964816cce36 16-Apr-2012 Sebastian Pop <spop@codeaurora.org> use DEFAULT_SYSROOT

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6c22939938d9596af43ebd456f68f8e49b42500a 15-Apr-2012 David Blaikie <dblaikie@gmail.com> Correct indentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a53ab5c569f494e44344ab950ccd6289dfa2d3ef 07-Apr-2012 Chad Rosier <mcrosier@apple.com> [driver] In general, the driver claims redundant args and uses the last arg.
However, the '-x' option has special handling and wasn't following this
paradigm. Fix it to do so by claiming the arg as we parse the '-x' option.
rdar://11203340


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
582b395ea4d5dfe353e2132a470d39efe2f84a54 02-Apr-2012 Fariborz Jahanian <fjahanian@apple.com> Use -rewrite-legacy-objc as clang argument for translating
objective-c's fragile abi, Use -rewrite-objc for translating
objective-c's modern abi. // rdar://11143173


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e8cb554c36c94e31e80ea893d9ad528afb491bdf 12-Mar-2012 Bill Wendling <isanbard@gmail.com> Update FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8ba9a6244c56b19bc2a24de5d0c32ff37d50177b 07-Mar-2012 Chad Rosier <mcrosier@apple.com> [driver] Don't try to generate diagnostic information for linker crashes.
rdar://10993648



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
53cb2b47596b0ca893a449fa81e0912ded658759 07-Mar-2012 Chad Rosier <mcrosier@apple.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
30660a898545416f0fea2d717f16f75640001e38 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add new code migrator support for migrating existing Objective-C code to use
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.

This introduces a new library, libEdit, which provides a new way to support
migration of code that improves on the original ARC migrator. We now believe
that most of its functionality can be refactored into the existing libraries,
and thus this new library may shortly disappear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8a988c32b8ac18eb252ef4a58ed56f898255524d 22-Feb-2012 Joerg Sonnenberger <joerg@bec.de> Revert part of r148839 and keep DefaultTargetTriple in the form adjusted
by -target and similar options. As discussed in PR 12026, the change
broke support for target-prefixed tools, i.e. calling x86_64--linux-ld
when compiling for x86_64--linux. Improve the test cases added
originally in r149083 to not require execution, just executable files.
Document the hack with appropiate FIXME comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2dd17a15ddc0184790d790b6128d79ffddae4964 22-Feb-2012 Chad Rosier <mcrosier@apple.com> [driver] Add a warning for when -mcpu= is specified without an argument. There
are likely many other OPT_xxxx_EQ options that could/should be added here.
rdar://10704648



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2639ac628cff5dedb4fa60169082b2a1a9dd8694 22-Feb-2012 Chad Rosier <mcrosier@apple.com> Provide a way to disable auto-generation of preprocessed files during clang
crash. This can speedup the process of generating a delta reduced test case.
rdar://10905465


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1367c9b0ff3f657d2f2d471365a69e8f6d2ccbd0 20-Feb-2012 Aaron Ballman <aaron@aaronballman.com> Fixing the working-directory option so that it stores the proper directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0e65959196b45d8afc89e9102c4fc4ec0d642066 19-Feb-2012 Rafael Espindola <rafael.espindola@gmail.com> Implement a -gcc-toolchain command line option that does the same as
configure's --with-gcc-toolchain. The configure option is now just a default
value for the command line one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
31c4690047f5f362ecf886f1586844b1aef0c4d2 15-Feb-2012 David Chisnall <csdavec@swan.ac.uk> First pass at Solaris toolchain support. This version compiles and links hello
world on Solaris 11 for both x86 and x86-64 using the built-in assembler and
Solaris (not GNU) ld, however it currently relies on a hard-coded GCC location
to find crtbegin.o and crtend.o, as well as libgcc and libgcc_eh.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cc8a94565ec2ff459dcee9ef34237fdcdfc69b3f 14-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> include clang's config.h unconditionally (v2)

And remove HAVE_CLANG_CONFIG_H, now that the header is generated
in the autoconf build, too.

Reverts r149571/restores r149504, now that config.h is generated
correctly by LLVM's configure in all build configurations.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c56389189e7a8b99d7db3a6f60c896adb2b092bf 13-Feb-2012 Chad Rosier <mcrosier@apple.com> When generating diagnostic information due to a clang failure, allow multiple
-arch options if the're all the same.

Patch by Jeremy Huddleston.
rdar://10849701

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b9da55780eb66fb09e771dbc5ff01eec5c4d957b 09-Feb-2012 David Blaikie <dblaikie@gmail.com> Correct comment Clang C++ use in production.

This was from way-back-when (r82583) when Clang's C++ support wasn't prime-time
yet. Production quality C++ was tested experimentally from r100119 and turned
on by default in r141063.

Patch by Justin Bogner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b822f72c708e235a135fcaf9eb1dba8c20c6a680 06-Feb-2012 Eric Christopher <echristo@apple.com> Rewrite the debug action handling to take -verify into account.
Add a quiet option for dwarfdump and move it out of NDEBUG only.
Still requires an option as we don't want this on by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1c79dc4086a5fc754689ace567cb7418ed022fcc 06-Feb-2012 Eric Christopher <echristo@apple.com> Update the command line here and update the comment, we're just going
to leave this as a debug only option for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6f42b62b6194f53bcbc349f5d17388e1936535d7 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import OwningPtr<> into clang namespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f2462be34a49e2108c9b4151f8e6d3fe1b916179 02-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> back out r149504

Too many weird build failures.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
69d3b4f7c9fa818d2536b4f1b220b942ae392128 01-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> include clang's config.h unconditionally

And remove HAVE_CLANG_CONFIG_H, now that the header is generated
in the autoconf build, too. (clang r149497 / llvm r149498)

Also include the config.h header after all other headers, per
the LLVM coding standards.

It also turns out WindowsToolChain.cpp wasn't using the config
header at all, so that include's just deleted now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1d16f0f805c2a3e2198a87154990347b2759f6bd 31-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Revert r149083 which is not the direction we're going in the Clang
driver based on discussions with Doug Gregor. There are several issues:
1) The patch was not reviewed prior to commit and there were review comments.
2) The design of the functionality (triple-prefixed tool invocation)
isn't the design we want for Clang going forward: it focuses on the
"user triple" rather than on the "toolchain triple", and forces that
bit of state into the API of every single toolchain instead of
handling it automatically in the common base classes.
3) The tests provided are not stable. They fail on a few Linux variants
(Gentoo among them) and on mingw32 and some other environments.

I *am* interested in the Clang driver being able to invoke
triple-prefixed tools, but we need to design that feature the right way.
This patch just extends the previous hack without fixing the underlying
problems with it. I'm working on a new design for this that I will mail
for review by tomorrow.

I am aware that this removes functionality that NetBSD relies on, but
this is ToT, not a release. This functionality hasn't been properly
designed, implemented, and tested yet. We can't "regress" until we get
something that really works, both with the immediate use cases and with
long term maintenance of the Clang driver.

For reference, the original commit log:
Keep track of the original target the user specified before
normalization. This used to be captured in DefaultTargetTriple and is
used for the (optional) $triple-$tool lookup for cross-compilation.
Do this properly by making it an attribute of the toolchain and use it
in combination with the computed triple as index for the toolchain
lookup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
34144f67610be0ac6cb0d85d77bd57662b9232b9 26-Jan-2012 Joerg Sonnenberger <joerg@bec.de> Keep track of the original target the user specified before
normalization. This used to be captured in DefaultTargetTriple and is
used for the (optional) $triple-$tool lookup for cross-compilation.
Do this properly by making it an attribute of the toolchain and use it
in combination with the computed triple as index for the toolchain
lookup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1621e75dc4049e7b82bf81f4eb739a99f91bd3d8 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Restore a tiny bit of functionality that I completely overlooked in the
Linux toolchain selection -- sorry folks. =] This should fix the Hexagon
toolchain.

However, I would point out that I see why my testing didn't catch this
-- we have no tests for Hexagon. ;]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
32f88be6e2dbd950861858fb75b0a37b685d6267 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Remove the 'ToolTriple' concept from the NetBSD toolchain along with my
gross hack to provide it from my previous patch removing HostInfo. This
was enshrining (and hiding from my searches) the concept of storing and
diff-ing the host and target triples. We don't have the host triple
reliably available, so we need to merely inspect the target system. I've
changed the logic in selecting library search paths for NetBSD to match
what I provided for FreeBSD -- we include both search paths, but put the
32-bit-on-64-bit-host path first so it trumps.

NetBSD maintainers, you may want to tweak this, or feel free to ask me
to tweak it. I've left a FIXME here about the challeng I see in fixing
this properly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0671555f51808b88578bf9c383ef6ba36bb17d5f 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Delete still more remnants of the now dead HostInfo. The janitoring will
continue until cleanliness improves.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
18d7f3af752c41a197552a1ff25ddd639224b4bb 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Delete the driver's HostInfo class. This abstraction just never really
did anything. The two big pieces of functionality it tried to provide
was to cache the ToolChain objects for each target, and to figure out
the exact target based on the flag set coming in to an invocation.
However, it had a lot of flaws even with those goals:
- Neither of these have anything to do with the host, or its info.
- The HostInfo class was setup as a full blown class *hierarchy* with
a separate implementation for each "host" OS. This required
dispatching just to create the objects in the first place.
- The hierarchy claimed to represent the host, when in fact it was
based on the target OS.
- Each leaf in the hierarchy was responsible for implementing the flag
processing and caching, resulting in a *lot* of copy-paste code and
quite a few bugs.
- The caching was consistently done based on architecture alone, even
though *any* aspect of the targeted triple might change the behavior
of the configured toolchain.
- Flag processing was already being done in the Driver proper,
separating the flag handling even more than it already is.

Instead of this, we can simply have the dispatch logic in the Driver
which previously created a HostInfo object create the ToolChain objects.
Adding caching in the Driver layer is a tiny amount of code. Finally,
pulling the flag processing into the Driver puts it where it belongs and
consolidates it in one location.

The result is that two functions, and maybe 100 lines of new code
replace over 10 classes and 800 lines of code. Woot.

This also paves the way to introduce more detailed ToolChain objects for
various OSes without threading through a new HostInfo type as well, and
the accompanying boiler plate. That, of course, was the yak I started to
shave that began this entire refactoring escapade. Wheee!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
08386a9769575bd8290024aaaecb2dbad5bfd59d 25-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Remove the TargetTriple object that I added to the Driver recently. This
helped stage the refactoring of things a bit, but really isn't the right
place for it. The driver may be responsible for compilations with many
different targets. In those cases, having a target triple in the driver
is actively misleading because for many of those compilations that is
not actually the triple being targeted.

This moves the last remaining users of the Driver's target triple to
instead use the ToolChain's target triple. The toolchain has a single,
concrete target it operates over, making this a more stable and natural
home for it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
58f2b298d80ccc06dd1d5f759a80fc5f6133d8ad 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Start hoisting the logic for computing the target triple into its own
function. The logic for this, and I want to emphasize that this is the
logic for computing the *target* triple, is currently scattered
throughout various different HostInfo classes ToolChain factoring
functions. Best part, it is largely *duplicated* there. The goal is to
hoist all of that up to here where we can deal with it once, and in
a consistent manner.

Unfortunately, this uncovers more fun problems: the ToolChains assume
that the *actual* target triple is the one passed into them by these
factory functions, while the *host* triple is the one in the driver.
This already was a lie, and a damn lie, when the '-target' flag was
specified. It only really worked when the difference stemmed from '-m32'
and '-m64' flags. I'll have to fix that (and remove all the FIXMEs I've
introduced here to document the problem) before I can finish hoisting
the target-calculation logic.

It's bugs all the way down today it seems...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4a04d0b4aa33e98ea9e7b3e787f0490585ce9b6f 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Remove HostInfo::useDriverDriver(). This was only used in two places
inside the innards of the Driver implementation, and only ever
implemented to return 'true' for the Darwin OSes. Instead use a more
direct query on the target triple and a comment to document why the
target matters here.

If anyone is worried about this predicate getting wider use or improper
use, I can make it a local or private predicate in the driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
91e6076b9bf5e09dc6b202d17a5647b724e6f6e6 24-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Hoist the targeted triple object into an actual object in the Driver.
The Driver has a fixed target, whether we like it or not, the
DefaultTargetTriple is not a default. This at least makes things more
honest. I'll eventually get rid of most (if not all) of
DefaultTargetTriple with this proper triple object. Bit of a WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9ec60dfe771ff28a84889dced6f8fd3748d3d55e 20-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
abac441b7d114d5980864093ee0643bf68f1a8f2 14-Jan-2012 Chad Rosier <mcrosier@apple.com> Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
31cbe684302a5ccb001fa2131c0e4aeaa372f5c0 13-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Revert r148138; it's causing test failures.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
edd4f3c39101912605c2a1868dd2be71aa218798 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9606a57b6f2c43bf438a958fdffea1de60f6b2b7 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename DefaultHostTriple into DefaultTargetTriple

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
573ea9683113064d8d72b9f6a119a63136860181 29-Nov-2011 NAKAMURA Takumi <geek4civic@gmail.com> [Win32] Catch exceptions (eg. segfault) on waiting for invoked clang from the driver.

clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused.

llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value.

Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5d4d9807a65291cbe6ab88d4a4f74cb7fff01bde 21-Nov-2011 Peter Collingbourne <peter@pcc.me.uk> Teach the driver about failure result files, which are compilation
output files that are valid regardless of whether the compilation
succeeded or failed (but not if we crash). Add depfiles to the
failure result file list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ecff7c80e5ce4ccb1d2765c234c88efafdc1a378 19-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Driver: Remove the signal number from the "command failed" diagnostic.

- With the current implementation of sys::Program this always printed "2".
- The command execution code will output the right number anyway (including the signal name).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5183b3d5d5f911f1e9fd8e5d877c7fe039963e31 05-Nov-2011 Chad Rosier <mcrosier@apple.com> [driver] If we're only linking, don't warn about unused arguments which are
obviously only used during compilation.
rdar://10386708


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ce50c55f8cb569cc1b71770fd62327a883fdb7ba 02-Nov-2011 Chad Rosier <mcrosier@apple.com> In addition to dumping preprocessed source, dump a script with the command line
arguments that caused clang to crash.
rdar://8314451

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1a1764bd15406f86d53c51b4c7f8a54afee2a541 30-Oct-2011 Bob Wilson <bob.wilson@apple.com> Stop disabling integrated assembler with -static. <rdar://problem/10175391>

The integrated assembler seems to be working pretty well for -static code
now, so remove the hacks to disable it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
905c45f15a25598620d19160c139c6b785aeea89 14-Oct-2011 Bob Wilson <bob.wilson@apple.com> Use Triple.isOSDarwin() instead of comparing against Triple::Darwin.

There are now separate Triple::MacOSX and Triple::IOS values for the OS
so comparing against Triple::Darwin will fail to match those. Note that
I changed the expected output for the Driver/rewrite-objc.m test, which had
previously not been passing Darwin-specific options with the macosx triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
10a82cde7c317c5dd41dc3faf17f503c52ce2a3d 04-Oct-2011 Bob Wilson <bob.wilson@apple.com> Rip out flags for controlling C++ "production mode" separately.

This is old leftover cruft from the days when C++ was not yet ready
for prime time.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
26e0b304557519c12b150afe23cd24e28fa20a1d 30-Sep-2011 Daniel Dunbar <daniel@zuster.org> Revert my --working-directory option, which wasn't well thought through.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7ca268423c400ef0109d2b8b29717a83f87e0f3e 28-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Driver: Fix two bad typos that were breaking the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5adcec16cb8d9e7bebf310b6c07249dfd852346b 28-Sep-2011 David Chisnall <csdavec@swan.ac.uk> Check for GCC paths that have the target triple in them. This is required for a lot of cross-compile toolchains. Also add some slightly better support for -B.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d6471f7c1921c7802804ce3ff6fe9768310f72b9 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename Diagnostic to DiagnosticsEngine as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
51be75eccd920c06fc3033444c9d37e78d3cb4a5 24-Sep-2011 Daniel Dunbar <daniel@zuster.org> Driver: Use sys::Process::SetWorkingDirectory, for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5cca4eb629c2ae96f3a9251512883285fe0f270c 23-Sep-2011 Benjamin Kramer <benny.kra@googlemail.com> Driver: Explicitly include <unistd.h>, libstdc++'s <map> pulls it in, libc++ doesn't.

Also, on windows, chdir seems to live in <direct.h>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
63bc59bf22b8f2e672fcf3904fe33993f69e006f 23-Sep-2011 Daniel Dunbar <daniel@zuster.org> Driver: Add a --working-directory option which can be used to cause the compiler
to operate "as if" in a certain working directory.
- For now, we just implement this by changing the actual working directory, but
eventually we would want to handle this transparently. This is useful to
avoid an extra exec() pair in some situations, and will be something we would
want to support for more flexibility in using the Clang libraries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Removing a bunch of dead returns/breaks after llvm_unreachables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
548f6c8e8010b181cb151df92f0a989363cb993e 23-Sep-2011 David Blaikie <dblaikie@gmail.com> More missing header inclusions from llvm_unreachable migration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
815eb6b80739ffca9879b9833208932dee55d0cb 14-Sep-2011 Chad Rosier <mcrosier@apple.com> [driver] Add support for the COMPILER_PATH environment variable, which adds the
specified path(s) to the list of prefix directories.
rdar://10097714

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
46e3908af1ba2af6d7497e8e501f5c9a01acde7e 07-Sep-2011 Chad Rosier <mcrosier@apple.com> [driver] When clang crashes, don't try to generate diagnostics (i.e.,
preprocessor output) with multiple -arch options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
41ee7a371780d45f43251ee68542b8a9f0cd0fba 06-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Add the resource directory to the search path for Driver::GetFilePath,
as well as the search path printed by -print-search-dirs.

The main purpose of this change is to cause -print-file-name=include
to print the path to the include directory under Clang's resource
directory, instead of the system compiler's include directory, whose
header files Clang may not be able to parse. Some build scripts will
do something like:
$(CC) -nostdinc -I`$(CC) -print-file-name=include`
to exclude all header paths except the compiler's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f43b5e84aa982afacd87a225440ec88a9b66c1a0 27-Aug-2011 Chad Rosier <mcrosier@apple.com> Cleanup r138662 per Ben and David's suggestions, thanks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ee99c8191cc0d9778d733da51be2f52c7b732d76 26-Aug-2011 Chad Rosier <mcrosier@apple.com> Make sure the std::string isn't deallocated prior to use. Many thanks to Eli
for catching this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fe87fc73c0091a8d6ba04b7e3b5f144d4a0517a3 26-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] When generating temporary files allow a prefix to be added. In many
cases we want the prefix to be the original file name less the suffix. For an
input such as test.c to named temporary would be something like test-3O4Clq.o
Part of <rdar://problem/8314451>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fab83b5e7cb9507c7775edb93ed84758df132285 25-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] Do not add -kext to the link command line when compiling with
-fapple-kext.
Fixes <rdar://problem/10013310>. Reverts <rdar://problem/7809940>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f857186fd1995b34185d063a29b11ad4f948519f 23-Aug-2011 Eric Christopher <echristo@apple.com> Add support for a verifier to the driver. Currently only verifies debug
output on darwin so is hard coded there.

As a note this will need a little bit of refactoring in the class
hierarchy to separate it out for different verifiers based on input type.

Fixes rdar://8256258.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
90c88023fd4cb709c8645aa24e9eac420f733b5d 18-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] Don't generate diagnostics (i.e., preprocessed source) if reading
from stdin. This allows Eli and the like to continue with their debugging
trickery without loss of limb (or car) on my part. :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3060178ad9df29789505c1e6debcfc80a3a13587 18-Aug-2011 Chad Rosier <mcrosier@apple.com> Fix else style. No functionality change intended.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
59f9b26bcb59bfb4d66c6ea129172795dcd1cb6b 18-Aug-2011 Eric Christopher <echristo@apple.com> Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
137a20b5f9360311dd0b6d2500e3365ab2cdf40e 13-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] When generating clang failure diagnostics, don't try to preprocess
inputs that aren't preprocessable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
be69f6092668b0586c8729855c01ca2eea22e6fe 13-Aug-2011 Chad Rosier <mcrosier@apple.com> [driver] Refactor a bit to enable a few fixes when generating diagnostics. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fc6142779f42058b4a39a29b6209a01a6de9fe7c 02-Aug-2011 Chad Rosier <mcrosier@apple.com> Fix cmake for r136702 (at least for the most part). Chandler has been kind
enough to offer to investigate the underlying issue. Thanks to Doug for his
assistance as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4068eaaec44346a5866dcf3e5e4204ca82134e53 02-Aug-2011 Chad Rosier <mcrosier@apple.com> Temporarily revert parts of r136702 to make cmake builds happy.
Someone with more cmake experience want to throw me a bone? :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2b81910618f63e4ce2373c926a26e76b4b91373f 02-Aug-2011 Chad Rosier <mcrosier@apple.com> 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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1fc1de48cdf9a2f241e0f2c7b9e9db2322f1b794 28-Jul-2011 Chad Rosier <mcrosier@apple.com> The -fapple-kext flag was designed to "do the right thing" for building code for
use in KEXTs. However, users/Xcode still need to tweak the linker flags to do
the right thing, and end up using -Xlinker, for example. Instead, have the
driver "do the right thing" when linking when -fapple-kext is present on the
command line, and we should have Xcode use -fapple-kext instead of setting other
flags like -Xlinker -kext or -nodefaultlibs.
rdar://7809940

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2d3ba4f5a923a90c3fc290ddfba5e36c2d0a9b46 23-Jul-2011 Chris Lattner <sabre@nondot.org> Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon Mulder!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d7a3ba03f69892aac02e0771eb2e6d1b7b1d1267 20-Jul-2011 Chad Rosier <mcrosier@apple.com> Temporarily revert r135614 while I fix the cmake build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2da13b15959365df7edf1ed12a049b599b39c276 20-Jul-2011 Chad Rosier <mcrosier@apple.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
59c8457f01f908e75d0e61ec3bd99cebcd672cee 16-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Correctly handle sysroot prefix in -print-search-dirs. Makes libtool
more happy on NetBSD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3e4d10917a7ef84ebf86062e8c912de9c00597c9 15-Jul-2011 Chad Rosier <mcrosier@apple.com> Prevent the -save-temps flag from modifying the input file if the input filename
conflicts with a to be produced temp filename.
rdar://9724657

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ed798951b46555946c95cb76568ea3cf0b16c9ab 21-Jun-2011 Daniel Dunbar <daniel@zuster.org> Driver: Factor out IsUsingLTO helper function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7e46d0b8436d844d77f3ff580b6e1204e0407044 04-Jun-2011 Nick Lewycky <nicholas@mxc.ca> Identifiers with _CapitalLetter are reserved, so don't use them. Prefer the
common C++ pattern of using the same name for the constructor argument as you
do for the member. Noticed by inspection.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
477aab6782795e7472055a54108d2df270ce1a89 25-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> A StringRef-ication of the DiagnosticIDs API and internals.

Patch by Matthieu Monrocq with tweaks by me to avoid StringRefs in the static
diagnostic data structures, which resulted in a huge global-var-init function.

Depends on llvm commit r132046.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9d0fbeadc455c8292837b738b6af315d27930637 06-May-2011 Joerg Sonnenberger <joerg@bec.de> Rename ContainsCompileAction to ContainsCompileOrAssembleAction to
properly reflect its behavior.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
32c8cb66af6192adb82fe39779b460b605fa14ed 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver: Suppress some additional warnings with -Qunused-arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
877ded8532736d49b3cda8708cf0e5e9c44a760b 18-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver: Support -fno-lto.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b8a3e8139b9fe513500c89bbcd9133415654a689 09-Apr-2011 Dylan Noblesmith <nobled@dreamwidth.org> refactor -ccc-gcc-name code

Put the logic for deciding the default name for gcc/g++
in the only place that actually cares about it.

This also pushes an ifdef out of the generic driver code
to a little further down, when the target is actually known.
Hopefully it can be changed into just a runtime check
in the future.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c8a22b091677c02003880166e5d5767ca8d74b70 07-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver: Sketch driver support for a CC_LOG_DIAGNOSTICS options, similar to the
existing CC_PRINT_OPTIONS and CC_PRINT_HEADERS, which can be used to
transparently capture the compiler diagnostics from a build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
832316e9a04242972f4b57281dccb8e4cf5894ea 05-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move Driver::createInvocationFromArgs function to Frontend library to avoid dependency cycle
between libFrontend and libDriver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
054e4f50e2f1995e91b0cd3c3258aa252785fe3f 04-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce Driver::createInvocationFromArgs used to create a CompilerInvocation from command-line args.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
59f9046031bc9703d405b5a9ec61541a90e03def 25-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Dsymutil actions should put the dSYM adjacent to the output file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7f9fc3f7ce076645cb6aefc99c64d9446caf13d6 23-Mar-2011 Chris Lattner <sabre@nondot.org> switch a few Driver APIs to use llvm::ArrayRef, cleaning up code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
05e5930166333e382522b942f00d08abc6c0a28e 21-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Memorize presence/absence of -nostdlib in Driver.
Drop program paths on NetBSD (unused). Only include lib dir, if
-nostdlib is absent. Use = to allow --sysroot to work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8ab2bdcc4f397e100c684ede8e8ca6e226e1380a 21-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Remember sysroot in Driver. Pass it down to ld for NetBSD, FreeBSD
and DragonFly. Use the --sysroot= form for Linux. Fix handling of =
prefix for -B.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ac0659ae4124156915eddf70e78065df224d34c8 18-Mar-2011 Daniel Dunbar <daniel@zuster.org> Driver: Give SelectTool access to the action inputs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7693b1021862ea04f522cca9ca1df67bd1d2d54e 18-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> On !Darwin, do use the integrated as with -static.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9a2927c4e6afa56ade0e5acc654f07fc658a220e 16-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Use C as fallback type if in C preprocessor mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
65f7165676854bf75494f5b73a620d7237db5d41 07-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Redo part of r127137:
Pass down the correct C->getArgs, but keep it with the original
DerivedArgList type. Slightly adjust the MakeIndex call for the
different base type. This unbreaks the handling of --no-mangle on Darwin.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
951c5705771a57eca0bca07aae5d4738619dd6c6 07-Mar-2011 Joerg Sonnenberger <joerg@bec.de> Explicitly initialize CCCIsCPP


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9ade4ae4fb7ed1fcbd63835d9f8f53052f0657a2 07-Mar-2011 Joerg Sonnenberger <joerg@bec.de> If called as *cpp or *cpp-[^-]*, run only the preprocessor. If no
input is specified, use stdin implicitly. Based on a patch from
Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
476fc6715c4119a8e39ec70fbf9df1c57580ead8 05-Mar-2011 Anton Korobeynikov <asl@math.spbu.ru> Normalize target triple passed out of driver. Basically this means
that at cc1 level we will always have normalized triple and thus can
provide necessary default based on e.g. environment value (e.g. for
"arm-eabi" triple, etc.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0aa205765aec0aa5eed672f8e3cade543372edcd 17-Feb-2011 NAKAMURA Takumi <geek4civic@gmail.com> Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.

No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
09982cec0029bc495591067fa89967b6b4d1fa19 08-Feb-2011 Benjamin Kramer <benny.kra@googlemail.com> Allow multiple -B prefixes. Patch by Joerg Sonnenberger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2100fe952a644134b1dca462f2e6330cf14ef47c 03-Feb-2011 Oscar Fuentes <ofv@wanadoo.es> Moved here from LLVM Clang's configuration options and related macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
322c29fefe7fa33f03273136eb5f8b7f5b4df7c0 02-Feb-2011 Daniel Dunbar <daniel@zuster.org> clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrors
CC_PRINT_OPTIONS and can be used to get some out-of-band information on header
usage from a build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8e50a96b387dca7525caa8a6add31420dd82a2cd 02-Feb-2011 Benjamin Kramer <benny.kra@googlemail.com> Add NetBSD target support. Patch by Joerg Sonnenberger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
95a907fc0f2f717dca38a379c1d2353bfea06d4f 12-Jan-2011 Daniel Dunbar <daniel@zuster.org> Driver: Change -dumpversion to return a GCC compatible answer.
- See comment for why.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
32bef4edba854303800b3b01cb49a282e5da4f69 10-Jan-2011 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::exists with PathV2::fs::exists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d5b08bee799d4f77f1a25fa5977ca77b983ab031 18-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 equivalents.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
472ccff00cdbcd095c3ba933b9e3f202719f118f 18-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::getLast with PathV2::filename.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
df344dfb663f99184e734f5d14b5fc9b2725aec2 17-Dec-2010 Eric Christopher <echristo@apple.com> Going back to the drawing board with these two awful hacks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
74cae0c64d3cf85bcfbc9e7febac83a580804d57 17-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix spelling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
256053b31e697fdf0cc48f17d621c82fc3b8dff0 17-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2c5c3135286a8cb27406dc6dcecfbd16e7c898fa 17-Dec-2010 Eric Christopher <echristo@apple.com> Horrible hack for systems that use -dumpversion with clang to expect versions
that match gcc versions. Eew.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9eb93b07ea913e7ad0bcd15bd3e3662e2760c323 08-Dec-2010 Daniel Dunbar <daniel@zuster.org> Driver: M and MM should be grouped together, <rdar://problem/8744831>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
be3aab6abe5e66bb86596da806acc49614eacb69 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Use hasErrorOccurred() instead of getNumErrors() where it makes sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
33e4e70c8c0a17e0ccb7465d96556b077a68ecb1 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Refactoring of Diagnostic class.

-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
389db16c63eec6ecfa9b235155252d8da766e94e 03-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Implement -working-directory.

When -working-directory is passed in command line, file paths are resolved relative to the specified directory.
This helps both when using libclang (where we can't require the user to actually change the working directory)
and to help reproduce test cases when the reproduction work comes along.

--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains
the working directory value if set).
--FileSystemOptions are passed around to various interfaces that perform file operations.
--Opening & reading the content of files should be done only through FileManager. This is useful in general since
file operations will be abstracted in the future for the reproduction mechanism.

FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same
FileManager but with different FileSystemOptions.

Addresses rdar://8583824.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
acd65bd27011f5aa863bcf3a980888e3760dae26 19-Oct-2010 Chandler Carruth <chandlerc@gmail.com> Use CLANG_RESOURCE_DIR define if one is provided, otherwise use the default of
'../lib/clang/<version>'. Actually use '..' rather than removing the trailing
component to correctly handle paths containing '.' or symlinks in the presence
of -no-canonical-prefixes, etc. This shouldn't change any existing behavior.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
24da18f7285cc7601dbe467f466e2e04fa9eef6b 11-Oct-2010 NAKAMURA Takumi <geek4civic@gmail.com> lib/Driver/Driver.cpp: Use the driver g++-4 for Cygwin-1.5.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bfd21240b6b4989854c8f5331dc86ce7aecf1ad4 24-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Revert r114712 due to failure on darwin buildbot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
280ec9d23cf16f50fd173bc87da7d2101446bcdd 24-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Make -M/-MM behave like in gcc; use -MF first then -o else use stdout.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e3365aa452673f7ea3244bb6638551f13ab7570d 24-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Fix header comment so we don't break emacs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7433fedce98a58341d0f30c2e12e8d53f3bba575 17-Sep-2010 Shantonu Sen <ssen@apple.com> Driver: implement driver automagic support for -lcc_kext

Rewrite linker arguments to use libclang_rt.cc_kext.a
instead of gcc-specific libcc_kext.a

Resolves Radar 7808495


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d829950b2b75d50fca2772a20129323a186993a5 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver: Support -dumpmachine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e5a37f48388c7e4cc081f44d13a4910bfa56cd35 17-Sep-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add magic handling for "reserved library names", starting with
-lstdc++. This is the best gross solution for a gross problem.

This issue is that historically, GCC has add -L options to its internally
library directories. This has allowed users and platforms to end up depending on
the layout of GCC's internal library directories.

We want to correct this mistake by eliminating that -L, but this means that
existing libraries which are in the GCC lib dir won't be found. We are going to
handle this by treating those -l names as "reserved", and requiring toolchains
to know how to add the right full path to the reserved library.

The immediately side effect of this is that users trying to use -L to find their
own -lstdc++ will need to start using -nostdlib (which is a good idea
anyway). Another side effect is that -stdlib=libc++ -lstdc++ will now do the
"right" thing, for curious definitions of right.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
79e9e9dd533de9609ef141449bf50e705fa68fd0 06-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Make "-ccc-cxx" option work on Linux.
Patch by nobled.

I also took the opportunity to make the field private since now it is only ready from the
outside.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c4ab3493bb3048014895cf577a8f27505a83603d 23-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Update -ccc-install-dir to also set the installed dir. Totally
non-obvious.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ff58e3610f4e12094def69eb2d6dcb4330378d8f 21-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> Visual Studio tools used on win32 hosts when targeting win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c326b64a4d14ad89d6a5d227d2460050149d5461 18-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Claim the -mlinker-version synthesized argument, it shouldn't be
reported as unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a77a723489b0cff63bf90f23416e10b8b6fc1f55 12-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Use the compile time linker version as the default for -mlinker-version,
if detected.
- This is a hack, we really want the linker version at execution time, but we
don't have any infrastructure for getting that. Yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6699877c45d119ca74e4c1d7c3c9fb90e95398e1 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Have -ccc-host-triple simply override the default in the driver, for
now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4180011fb8cef06adec04d30486b1bf3b99aa8b8 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Move HostInfo::lookupTypeForExtension to ToolChain::LookupTypeForExtension.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
74edcea3db1f85ba73ad0fede2ed5e2f096cac4b 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Give Build{Universal,}Actions access to the default host tool chain. I
avoided this originally to enforce that the driver actions aren't toolchain
dependent, but it isn't worth the cumbersone additional hostinfo split.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2fe238ed293bd4bc27af9beb9fa151fad2146fa8 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add Compilation::addCommand and switch tools to using it, now that we
don't have to deal with nested jobs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9b18cca61197421af872df81014390c9cb813516 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e4341253cc5d9c05c256b90eb3f816d256264ceb 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Eliminate now unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
defcda7ea696c41ecaad36cc77f2360b91697265 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Simplify logic for sending 'clang -E t.c' output to stdout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
58e12fd6df3b692a8385d1c1b9644ba98e86e64d 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Never try to use piped inputs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c19a12dc3d441bec62eed55e312b76c12d6d9022 02-Aug-2010 Daniel Dunbar <daniel@zuster.org> Driver: Start ripping out support for -pipe, which is worthless and complicates
too many other things.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0bbad519aa068206f1e158d5073f72a39fbe83c5 19-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver: Change the driver to take the path to the main executable, instead of
taking it in pieces.
- Fixes a problem where the Clang executable path was not initialized properly
on Win32, because sys::Path::getBasename() doesn't do what I always think it
does. Imagine that, a sys::Path interface that is confusing!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b9a822639c570b1853c75c235e9d6bad485f9e01 14-Jul-2010 Daniel Dunbar <daniel@zuster.org> Driver: When re'execing clang, use path to the main executable instead of
looking up Clang in the normal search paths (which may end up finding the wrong
clang).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
38e317d6dce161b249508686cc67eb7176958762 07-Jul-2010 Chris Lattner <sabre@nondot.org> add driver support for minix, patch by Kees van Reeuwijk
from PR7583


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b5e2f698accd4d3a1379983304a2f31ec194c332 29-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Only run dsymutil when we are also compiling/assembling as part
of the compilation.
- <rdar://problem/8141387> clang is always invoking dsymutil

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
212df32d955c34dbb8b976bc0316e8eb83ac579e 15-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Support -Wp,-MMD,FOO, which I found an instance of. :(

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
eda3f707fd53f90f4232b0e694d3f5514237aba5 14-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Fix PR4062 by dissecting one particular -Wp, form.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f78925f633e949f06521d9ffd937019e59f35efc 14-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Dissect -Wl, and -Xlinker arguments to remove --no-demangle, which was a
collect2 option that is passed by some projects (notably WebKit).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
be21cd0f07726045367861d3882d18ef30f6a30c 12-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Switch Compilation to return the translated arguments by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
279c1dbebf37cd128f3c73c70741a6b8c35ad025 12-Jun-2010 Daniel Dunbar <daniel@zuster.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e82ec0bead14ae262cddbe958b77767a3f6aebcd 12-Jun-2010 Daniel Dunbar <daniel@zuster.org> Fix a couple comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
532c1ec307b8689e95896a11ce5ae4661fa9e5d3 10-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Eliminate Arg subclasses, which are now unnecessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6c6424bc0d3b5f080a97b5f6ef4a8d70c38e38f5 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver: Support invoking Clang on .ll or .bc inputs.
- We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o').

It is now possible to do something like:
$ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ...
$ clang -c t.ll -o t.o ... assorted other compile flags ...
and expect that the output will be almost* identical to:
$ clang -c t.c -o t.o ... assorted other compile flags ...
because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend.

*: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
be1cc3eec682ca73361edb4109a7969452d3dbeb 04-Jun-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Model dsymutil properly, as a separate action/tool kind which is
added as the last output step, instead of just hacking it into the link step.
- Among other things, this fixes dSYM generation when using multiple -arch options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
9fcbc050a704cc5bb46e1c493940aca7c79aebf9 22-May-2010 Daniel Dunbar <daniel@zuster.org> Driver: When printing a "command was signalled" type of diagnostic, use the
short name of the tool in use, instead of the name of the action that created
the command. The practical impact is we now get:
clang: error: clang frontend command failed due to signal 6 (use -v to see invocation)
instead of:
clang: error: assembler command failed due to signal 6 (use -v to see invocation)
when clang crashes on a job that uses the integrated assembler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
eb840bd0e473ee11622e084a0d6ff276ee7aa5c6 14-May-2010 Daniel Dunbar <daniel@zuster.org> Driver: Enable -integrated-as by default, at least for Darwin/x86 without -static.
- How else will we figure out what is broken, eh?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c3d26cc4eea5187ce13ed180b479ff8ef41015a7 05-May-2010 Chris Lattner <sabre@nondot.org> add a new --print-diagnostic-categories option, which causes the driver to
print out all of the category numbers with their description. This is useful
for clients that want to map the numbers produced by
--fdiagnostics-show-category=id to their human readable string form. The
output is simple but utilitarian:

$ clang --print-diagnostic-categories
1,Format String
2,Something Else

This implements rdar://7928193


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
60a53f24b160724de0e8dd0e142009981540fd26 06-Apr-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add a Tool::hasGoodDiagnostics hook, and use it to simplify logic for
deciding when we need to emit an extra "command failed" diagnostic.
- This also fixes the case where we were emitting that extra diagnostics, even
when using clang w/ the integrated assembler, which has good diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5d93ed3c7a2dae0a8f422747e269963b3ef11d95 01-Apr-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add support for a CLANGXX_IS_PRODUCTION build variable, which enable
Clang++ support, even in "Production" mode (for testing purposes).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
48ad6094679ca2bf4f3593068e02e7a208c1a73c 22-Mar-2010 Chandler Carruth <chandlerc@gmail.com> Add very limited support for GCC's '-B' flag. This allows us to support unusual
toolchain configurations and is a small step toward FreeBSD support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4c00fcdf98d3d7c4cb47b64f8b770f8f4bff1357 20-Mar-2010 Daniel Dunbar <daniel@zuster.org> Driver: Support CC_PRINT_OPTIONS, used for logging the compile commands (in -v style) to a file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
32c1a2ae8b31f32e478c8e504ed81db8c8d25713 11-Mar-2010 Daniel Dunbar <daniel@zuster.org> Driver: Free Action objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3a47c4e0a3e8d13ee4fb06cc3a98f9cfa9982400 04-Mar-2010 Chris Lattner <sabre@nondot.org> add TCE target support, patch by Pekka J!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
43302d4144b5291961aa160d2fe191c09a9d8ad1 25-Feb-2010 Daniel Dunbar <daniel@zuster.org> Driver: Allow driver title (for --help) to be overridden by clients.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
51679c5e4828b8a64953c4f3db162ca963bf7b03 17-Feb-2010 Daniel Dunbar <daniel@zuster.org> PR5803: clang++: Treat untyped 'C' inputs as C++.
- Patch by Andrzej K. Haczewski, with a tweak by me to emit a 'deprecated'
diagnostic when we do this. We'll see what zee users say.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
64952508c2b0c8bffb45c8b410f0af3d2457f59b 11-Feb-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add -rewrite-objc, which is an interface to clang -cc1 -rewrite-objc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e9c7b9ef2f2054401d099dc7666a4143ef14089d 11-Feb-2010 Daniel Dunbar <daniel@zuster.org> Driver: Fix infinite loop and wrong message on invalid -ccc-clang-arch argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8767cbc475ed96397b6f08617814eeb9cab121bd 03-Feb-2010 Daniel Dunbar <daniel@zuster.org> Driver: Add -[no-]integrated-as for clang.
- Requires backend support, which only exists for i386--darwin currently.

No 'as' required:
--
ddunbar@ozzy:tmp$ cat t.c
int main() { return 42; }
ddunbar@ozzy:tmp$ clang -m32 -integrated-as t.c


ddunbar@ozzy:tmp$ ./a.out; echo $?
42
ddunbar@ozzy:tmp$
--

The random extra whitespace is how you know its working! :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3bd54cc56276c386f4d50940a9fbfcad7a69cb75 25-Jan-2010 Daniel Dunbar <daniel@zuster.org> ASTUnit: Don't check that input files exist when parsing ASTs from the command
line -- they may be remapped (fake) files. This is useful for testing parsing
entirely from memory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a18f1b88a7ef3d2c944bb1d3b6586a2860ce2baa 23-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangFullVendorVersion() to getClangFullVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3687a5d83f5deb4b70b0c8e522c455d546f40101 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Move version string generation (e.g., "clang 1.1 ...") to libBasic/Version.cpp, getClangFullVendorVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f7a96a39958b3f919f26764777eec948b43d74bc 22-Jan-2010 Ted Kremenek <kremenek@apple.com> (1) Rename getClangSubversionRevision() to getClangRevision(), and
have it return a StringRef instead of an integer (to be more VCS
agnostic).

(2) Add getClangFullRepositoryVersion(), which contains an
amalgamation of the repository name and the revision.

(3) Change PCH to only emit the string returned by
getClangFullRepositoryVersion() instead of also emitting the value
of getClangSubversionRevision() (which has been removed). This is
functionally equivalent.

More cleanup to version string generation pending...



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
517e676b9e1524e39beeb47718822f2647801d1a 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangSubversionPath() -> getClangRepositoryPath() and have it return a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
225c41706dc0f3682236e351820d339e14390e00 20-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver: Lift clang resource directory computation to the Driver object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4d7b14734f2285695dcec347f8718b512093390a 19-Jan-2010 Ted Kremenek <kremenek@apple.com> Fix possible memory leak by using an OwningPtr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
54d76db0aa7107597cac0b80d8e138a37e6d1de9 25-Dec-2009 Benjamin Kramer <benny.kra@googlemail.com> Remove some dead variables clang-analyzer found.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
73ba9a6337c7879021976949a2dad9476a4f0abb 23-Dec-2009 Daniel Dunbar <daniel@zuster.org> Driver: Fix '... -O4 -O0 ...', which was generating bitcode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f3601388f234f70778e3023018dfe57b64cf4043 23-Dec-2009 Daniel Dunbar <daniel@zuster.org> Driver: When linking, don't warn about unused arguments which are obviously only
used during compilation.
- There is no easy way to define this group properly, unfortunately, and maybe
this is a losing strategy. For now this is unambiguous more friendly, though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e3fdca2ee0346a41d9cc5ee417a75e66274216f5 08-Dec-2009 Jeffrey Yasskin <jyasskin@google.com> Remove several .c_str() to be forward-compatible with StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7ca7987669fcd14d91b4227a9ddcf7fdd8b1f8c2 07-Dec-2009 Rafael Espindola <rafael.espindola@gmail.com> Shorten the help test for -no-canonical-prefixes, put it behind HelpHidden and
claim it in Driver.cpp instead of Tools.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f5431e3563a64758584906cb9e0d10719a0756ec 05-Dec-2009 Daniel Dunbar <daniel@zuster.org> Unbreak -ccc-cxx and -ccc-clang-cxx defaulting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8477ee93c9d81d1b5fe321706ff95bcd219c744b 04-Dec-2009 Daniel Dunbar <daniel@zuster.org> Driver: Switch -ccc-* options to using the standard options functionality.
- I still want to get rid of them, but manually handling them isn't adding value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
60e107fb86132fea75b886d2259f4c220334bc5e 03-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add OptTable::PrintHelp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cdd9686b890ebdc10039ae256ef4c9dfb5ebacb7 25-Nov-2009 Daniel Dunbar <daniel@zuster.org> What the FIXMEs want, the FIXMEs shall have.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
847abaa62883b6c20005bdd3346ebbd44e46dbac 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Factor out OptTable::ParseArgs, for parsing an entire argument vector.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
265e9ef9f3ef30a97790e6e7bbc3c17d97981ca7 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: ArgList doesn't depend on Options.h anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e4bdae78c69d2a09ee96619cc5ccf81441674412 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b827a0541b5fd095fcdb7ad0c3df93ca158c619a 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Use Option::matches instead of direct ID comparison.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
27e738d0d3f781672a5999d2a9e2827b00a97d0c 19-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Split OptTable out into OptTable.{h,cpp}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a79a2b5bf23d1422eed9be3793186ebbba7532ec 18-Nov-2009 Daniel Dunbar <daniel@zuster.org> Driver: Rework OptTable to have no dependency on the options it manages.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5b8cdb524fb06a5c35ba0d9dd9cdd437a50fd2f5 09-Oct-2009 Mike Stump <mrs@apple.com> Allow customization for the version line.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b8d1191fdeb4eec9bc5cf9bf4b027add0fb467b3 05-Oct-2009 Douglas Gregor <dgregor@apple.com> Provide a common set of routines in Version.h that return Subversion
branch/revision information. Use that information in the driver,
rather than one-off branch/revision computation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f44c58563286bb448a72ed9c9af5f21718633230 23-Sep-2009 Daniel Dunbar <daniel@zuster.org> Push "clang-is-production" logic up to tools/driver, and make it hittable by
defining the CLANG_IS_PRODUCTION Makefile variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
634b24563be901f8adc37c07ffba3eeac1f1d4cc 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> Improve driver error message when only running the preprocessor and an input is
already preprocessed.

--
ddunbar@giles:tmp$ touch t.i
ddunbar@giles:tmp$ gcc -E t.i
ddunbar@giles:tmp$ clang -E t.i
clang: warning: t.i: previously preprocessed input unused when '-E' is present
ddunbar@giles:tmp$
--

<rdar://problem/6813375> [driver] driver prints confusing message when running -E on preprocessed file

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5ed34f4c58b6ad4e21038d713c1fae31a6146ff5 10-Sep-2009 Daniel Dunbar <daniel@zuster.org> Change Get{File,Program}Path to return an std::string (instead of a sys::Path).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4954018954bbc97363eef02d0c83bea19ce9b329 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Push bound architecture name into Compilation::getArgsForToolChain.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
36df2904354ac150500ec16238a1ec3cce4ba83e 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Validate arguments to -arch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d7502d0a662b5c299125aba04245aefce67cbc22 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Rename HostInfo::getToolChain to HostInfo::CreateToolChain, and don't recreate
the default tool chain when binding the default architecture.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3f30ddf680df44e0c5c43b8db0a22166dcd7066b 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a6046bec7fc835186dde134fb81aa1b7d45cd9f0 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Fix ShouldUseClangCompiler to use llvm::Triple.
- -1 FIXME, and fixes 'clang -arch armv4t ...', for example.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a82318332c9e9b61d3d17371e675ca2859877ee5 09-Sep-2009 Daniel Dunbar <daniel@zuster.org> Tweak & reflow comments, and delete trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
da64141338da59bf477b5db5e333d6eade8e5fa1 04-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add -ccc-install-dir option for faking installation path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4f711c449adac405e1524b23ad44a0b5ee188929 03-Sep-2009 Mike Stump <mrs@apple.com> Update.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5915fbf310e171c4cd3c2af05e9de360c0fa988a 01-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add driver support for -emit-ast and AST compilation steps.
- <rdar://problem/7185031> Add 'clang' option '-emit-ast'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b1e5e661bbb980bad6134253636c8e500b7af356 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove arch normalization from Driver, this should be unnecessary now that
things have moved to llvm::Triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d57a7ef9252964bc6c8471451d7bd395b0520cb8 24-Aug-2009 Chris Lattner <sabre@nondot.org> API changes to match llvm ToT.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8bde505fad92a44a853f5697a4fd8d2b52f20119 23-Aug-2009 Daniel Dunbar <daniel@zuster.org> Reenable clang using clang-cc for C++ and all archs by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4a1240825acceab51facaa0dd9e8c344dca70155 23-Aug-2009 Daniel Dunbar <daniel@zuster.org> Temporarily switch clang back to not using clang-cc by default for C++, and only
using clang-cc on i386 and x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e7925a075f110ab21afeae084670a155dea568e3 22-Aug-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Second half of, clang, AuroraUX toolchain support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
dfaf4b3ac898bc40d928af693990769e98738793 23-Jul-2009 Daniel Dunbar <daniel@zuster.org> Switch the driver back to always using clang-cc by default (for C++, and
regardless of the architecture).
- This is a good default for development & testing; for example without this
any tests using 'clang' in the test suite will fail on PowerPC, since the
driver will avoid using clang.

- We don't want to actually ship something built this way, but that should be
handled via some sort of configuration file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
793007242ba209b68ce14ec7547ac70ee981303a 21-Jul-2009 Daniel Dunbar <daniel@zuster.org> driver: Print --version on stdout, to match gcc.
- Patch by Jean-Daniel Dupas


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c88a88f6f7672b6bb831dce9da4acfa0c846975f 01-Jul-2009 Daniel Dunbar <daniel@zuster.org> Driver: Move Compilation::Execute to Driver::ExecuteCompilation.
- The Compilation is just a helper class, it shouldn't have that amount of
logic in it.

- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f7b8eec37c8c8012fa525c71fb29a58c9f29beef 29-Jun-2009 Daniel Dunbar <daniel@zuster.org> OpenBSD support.
- Patch by Jonathan Gray!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3ee96baa3fff269e145855a6f7526c36e59a7f4b 17-Jun-2009 Daniel Dunbar <daniel@zuster.org> Stub out printing of the thread model with -v.
- Turns out libstdcxx greps for this in configure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
12cfe036d809173a25af0104844d4bb66a92252b 17-Jun-2009 Daniel Dunbar <daniel@zuster.org> Fake support for -print-multi-*
- I think we will eventually need to support this for realz, and some build
processes seem to depend on these options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6b3454a219cee5ef36c4668961f93a5c32deab61 26-May-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR4140: Add the start of a Linux toolchain (basically, just
barely enough to get the given usage of -print-file-name working).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cb8ab23f7c800b041aeb6fc38c341d1aa0da86bf 22-May-2009 Daniel Dunbar <daniel@zuster.org> (llvm up) Use llvm::Triple for storing target triples.
- This commit has some messy stuff in it to extend string lifetimes, but that
will go away once we switch to using the enum'd Triple interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
683ca381bf2b8dffab535c89d25250518bbec3a0 18-May-2009 Daniel Dunbar <daniel@zuster.org> Reformat a comment


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
63be57a832b2dab70592d1d9b37a5cd9a627356e 06-May-2009 Daniel Dunbar <daniel@zuster.org> Add --analyze-auto.
- Currently just an alias for --analyze, eventually we want to refit
--analyze so that it is less automatic (i.e., does not force plist
output and does not hard code the list of checks).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
11e1b40d759a643086f590f6ffbd9d68360bad46 02-May-2009 Daniel Dunbar <daniel@zuster.org> DragonFly ToolChain definition for driver.
- Patch by Alex Hornung!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
866cdc374be9c6888c7675cbc860073860c9f7e1 30-Apr-2009 Douglas Gregor <dgregor@apple.com> Revert r70424. We don't need it

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ee24266bfee859067d47d1517179da125d057ede 30-Apr-2009 Douglas Gregor <dgregor@apple.com> Add PCH version to the -v output

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
214e8722439ff6dff1ca86190372a7477212f3c7 29-Apr-2009 Douglas Gregor <dgregor@apple.com> Enable PCH by default

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ab41e63821dc60ad144d0684df8d79a9eef86b75 28-Apr-2009 Douglas Gregor <dgregor@apple.com> Add a header containing the Clang version; make the driver use this
Clang version value rather than hard-coding "1.0".

Add PCH and Clang version information into the PCH file. Reject PCH
files with the wrong version information.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fc68bca8a4351ed36593fcc97a260696719e0ed4 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Turn PCH off by default, yet again. I'm happier about it this time, though

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f527ce460311769e16dfc260f021b6b9032910fb 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Trying turning on PCH by default yet again. We might actually a chance at success now

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e60ee1d46aac435154682f4ebba724f24d4b0184 26-Apr-2009 Douglas Gregor <dgregor@apple.com> Turn off PCH by default, again

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
48cac20a16c6a4e93ec1fc29a37da37e24d637a9 26-Apr-2009 Douglas Gregor <dgregor@apple.com> One more crazy try with PCH-by-default

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
79db6a2541d90f1fff8dafbd9fdbecf87e846584 26-Apr-2009 Douglas Gregor <dgregor@apple.com> Turn of PCH by default. I got the info I was looking for

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cf11b52ac2819e0d82d60ba570b14ffdba3cd607 26-Apr-2009 Douglas Gregor <dgregor@apple.com> Another shot at switching PCH on by default, now that we've cleaned up some bugs and improved performance. Will be reverted after Mr. Speedy gets done with it

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7b3b24ecdf0e41eb6b734e4dd268d0af10874ad0 25-Apr-2009 Douglas Gregor <dgregor@apple.com> Revert my PCH change. I'm happy now

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c58fe35cedbd64f3c8f55405cd32131c866b035d 25-Apr-2009 Douglas Gregor <dgregor@apple.com> Temporarily try to build with PCH by default. Revert this change once
we see what trouble it causes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3ca7ee9a40532167f67bde17fff5e678f183f3f2 21-Apr-2009 Daniel Dunbar <daniel@zuster.org> Look at the TMP environment variable as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b03417fdc42ae19d2deb2ee1e5d2c3e9896a2a04 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Also look at the TEMP environment variable as a place to put temporary
files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f60c63af0ed33ab890600ee6146e7685901f46df 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> If defined, use TMPDIR environment variable as location for temporary files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
df91ef3d6c55692a0236f67b6c6b134a3bf84098 18-Apr-2009 Douglas Gregor <dgregor@apple.com> Preliminary PCH support in the driver

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
fec26bd1f4681db8c253fb86529e52bcad28a3ff 17-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Allow using clang as a precompiler, even if it is an
unsupported arch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c35d71f1e0a0c72fd43a73ddecd408bf43d501de 15-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add --help-hidden


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a1e2fd9b580ae583b91d3288d59c00ca9f6a56b8 10-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: CCC_ADD_ARGS could end up using dangling pointers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1e23f5f963dd6a3cee43ace77578161798e41e2d 07-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add 'q' flag for options which shouldn't be reported as unused.
- <rdar://problem/6756295> warning about '-dynamic' argument unused
during compilation seems incorrect


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e06dc219a869d73b6c9a398a2dee0aa2d4e2dcf0 04-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle -dumpversion, this is used by some configuration
scripts.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4f53b298846d720fbb906373f3f28d92f2121f35 04-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Automatically suppress warnings for duplicate versions of
flags which were used for something.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bf4a6767a8fd4f81df93c55f88b1b4b7142a04d4 04-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add -Qunused-arguments option to suppress driver "unused
arguments" warning.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6cc73de6ebb3eb00af7dd5149f6778318f1fb76f 02-Apr-2009 Daniel Dunbar <daniel@zuster.org> Wire --version to normal -v version text.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
78d8a089c8f124ba6f47bb37e2c4a36986f60e23 02-Apr-2009 Daniel Dunbar <daniel@zuster.org> Driver: Allow -ccc-gcc-name to specify the name/path to use when
calling gcc in generic configurations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
bf54a06f9b771c2a2730cc63eb89bce0522515b5 01-Apr-2009 Daniel Dunbar <daniel@zuster.org> Quick and dirty (!) fix to make sure we use powerpc in triples.
- PR3922

- I have a clean solution for this in flight, but it may take a while
to come to fruition so we'll take a quick fix for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
91e28afe3503893c69afd71877f11e3bf03fa4ce 31-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Implement basic --help text.
- PR3875.
- <rdar://problem/6615249> [driver] ccc should support some form of
--help


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
75358d267256022475371416654b056ad8531cb3 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sketch FreeBSD tool chain.
- Patch by Ed Schouten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cd8e4c44dd068956e9181381be3ee2d49a0fac52 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Support -M and -MM.
- Not particularly elegant, but my hand is forced by gcc.

Also, tweak -ccc-print-bindings output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a2094e76fc545b9e17c851c3d2c46b719c5f17eb 30-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Make sure to claim -### before emitting "unused argument"
warnings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
08c65e068993573882243f469caa6be5e8597d2a 27-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: -print-libgcc-file-name was searching wrong path list.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
950bedd8a9f00caabd2f1fc6812d70e08103f847 27-Mar-2009 Mike Stump <mrs@apple.com> Fix searching for gcc, we only want executable files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d7b88c2cb8986217f164203747d35c8f596e38c2 26-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Fix a number of option definition mismatches (flags instead of
separate, or vice versa).

Also, fix initialization of LinkingOutput variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
70c8db1003af49d3627aeef41fcdd7c6c6a7df79 26-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Print the correct target when printing the version.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d73fe9b70c5f6738d004744562287a62831f39bf 26-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Move GetReleaseVersion to static Driver::GetReleaseVersion method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
92b369928b8e9ad156fb6eec2bf9f21d657bd69b 26-Mar-2009 Chris Lattner <sabre@nondot.org> hopefully fix VC++ build error.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f3cad36e59a41b5767fe662b5ac8911ee174b801 25-Mar-2009 Daniel Dunbar <daniel@zuster.org> 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).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
337a6271b98c4c183f7eaad1563a75260b4f2871 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle -flto, -O4, and tweak -emit-llvm to match llvm-gcc.
- -emit-llvm no longer changes what compilation steps are done.

- -emit-llvm and -emit-llvm -S write output files with .o and .s
suffixes, respectively.

- <rdar://problem/6714125> clang-driver should support -O4 and -flto,
like llvm-gcc


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
6256d3654533547a7996170647c21a859cb441e1 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Warn when 'clang' is used to compile a source file we could
conceivably handle, but are defaulting to not using clang for.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0f99d2e57d8e3cf2508e7f9f868d41eccdc229c9 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Change default use of "clang" compiler.
- Don't default to using clang for C++ (use -ccc-clang-cxx to
override).

- Default to only using clang on i386 and x86_64 (use
-ccc-clang-archs "" to override).

- <rdar://problem/6712350> [driver] clang should not be used on
powerpc by default
- <rdar://problem/6705767> driver should default to -ccc-no-clang-cxx

I plan to add a warning that we are not using the clang compiler for
the given compilation so that users do not think clang is being used
in situations it isn't.

This change is motivated by the desire to be able to drop clang into a
build and have things "just work", even if it happens to get used to
compile C++ code or code for an architecture we don't support yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
af80e1ffafeb77929cc0b9ba8940a7f1c0b80d51 24-Mar-2009 Daniel Dunbar <daniel@zuster.org> Move ToolChain::ShouldUseClangCompiler to
Driver::ShouldUseClangCompiler.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c50b00dbd843cd929b5f220d4a8699852249f64c 23-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Setup file and program search paths in tool chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b0c4df5c4df69a003f26b378eb95961bc7c486e5 23-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Implement 'missing argument' error.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e33bea4ef34598e7a4a6a3a117392268998552d4 21-Mar-2009 Daniel Dunbar <daniel@zuster.org> ccc/Driver: .s defaults to 'assembler-with-cpp' on Darwin.
- <rdar://problem/6669441> ccc doesn't handle assembler-with-cpp
semantics correctly (but clang supports it)

- This is sad, because it requires a fairly useless target
hook. C'est la vie.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
38dd3d54186cf44ea9d37f463c3f2800ab526b82 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add Arg::getAsString and use when dumping arguments to
diagnostics.
- This ensures that the whole argument and values are printed,
instead of just the option name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ca3459e95f552cfae6c9c5fb4ed161e3a662c25e 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Implement -print-search-dirs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b7b61b26868a09dc1471895d0d39ed6c28245207 20-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Temporary hack to allow -ccc-print-bindings to work (for
testing) even with -pipe on.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
05494a78c3746a360e81fc1d1797ce52df415b54 19-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Claim unused input arguments when emitting "input file unused"
diagnostic (to suppress more generic unused warning).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7587719c40ebf02bf11e5e66c30bd20e98edebc2 19-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Claim -arch options when pipelining, and claim arguments that
are forwarded to GCC.
- The later is unfortunate, as it prevents us from generally warning
about anything interesting on platforms that use a generic
toolchain. However, we can't do much better without significantly
complicating things, and generally we should have proper tool chain
definitions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
115a79277edababaf1b26e3654044ae983197679 19-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle "linker input" arguments.
- Make InputInfo a variant of filename, pipe, input argument,
nothing.

- Leave a FIXME in InputInfo that this should be revisited.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
60ccc7677a5416df3a8f8bde79ab35f85cb66e14 19-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Forcibly disable pipe support until we can execute them, the
driver is functional without them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
84603bc4ed98caca9b82c1a68e63939927d8cd6d 19-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Delete the temporary files llvm::sys::Path::makeUnique
sometimes leaves around.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e530ad407af4a8904377592bfdb236acd320c6c2 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Cleanup temporary/result files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
632f50edc08c76ebc643a0d4871bae33a55d7b4e 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Lookup program names using llvm::sys::Program::FindProgramByName
if our usual methods fail. This isn't necessary for running the tool,
but improves the accuracy of logging output.

Also, have GCC tools lookup gcc program path.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d227fe7ee0af4f96b96598d9b98bff66a25d06a2 18-Mar-2009 Mike Stump <mrs@apple.com> The eventual name of this will be clang, might as well start now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0edefebc10fbc627d55d53936fc66178d1c08da1 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Support ToolChain specific path lists to search for files and
programs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
214399ebd73545dde02b4a45872e7ca9e1d9e742 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Construct temporary file names.
- This is still suboptimal, but should at least be workable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8944c38c2a14b038fee7d7ebfe8b9c851b51fd75 18-Mar-2009 Mike Stump <mrs@apple.com> Add revision information.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
af2e4baa2a75471e820030701225a1ca02c7308f 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Don't warn about unused arguments if there are Driver errors
(brings code in line with diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e70295b5c99c29e5792649b87d8455dfef209ac8 18-Mar-2009 Mike Stump <mrs@apple.com> Fix URL trimming for version information.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5d023c3edee981a70d4955ac0cb22bd01817c788 18-Mar-2009 Mike Stump <mrs@apple.com> Improve version number.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
56c5594515571eab0e02368ed05416b9dac20837 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Bug fix, derived .gch names sometimes started with "/".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d09986a6fb193d429863184bffac21340dc6eb11 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add assert and FIXME; arguments which act as linker inputs
(e.g., -filelist) are currently broken.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
871adcf4e41285e3f4c3b62eaa1b2e05b60b92da 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: ConstructJob also needs to know the destination (where to put
its commands).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
aa469f62f2b3ba6f560ccadfc379f8f4c45e3d51 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Print version on stderr to match [gc]cc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5ab483b2c88ba61c97e0e3cab3b1aaad77b26d26 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Claim inputs when we bind the InputAction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
028801c66f37d6765ee98f2b1c79e74280ca73e5 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Don't claim inputs when pipelining, a tool should eventually
claim these.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
62cf601812e03dd9bc5df42b8ef06a0cdedc38bf 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add a dash of const.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
47ac7d27c44bd64a7d0fc03d4babc196cf2b8230 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Stub out Tool::ConstructJob.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
c811b6c5e3ad403c535fba25a03c956599ff27a5 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add two normalizations for powerpc.
- PR3830


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
10ffa9a4887d9376e3eb3598e40523d1b58773c9 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Ditch Driver::DefaultToolChain, this can vary between compilations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
21549237f14505cfc2a18a06416372a36229d0ce 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Move actions into Compilation, and construct the compilation
earlier.

- This gives us a simple ownership model, and allows clients access
to more information should they ever want it.

- We now free Actions correctly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5796bf4913832bd1165c3ff5e04838d150de1c4c 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add test for binding of precompile; exposed bug due to my
flawed idea that llvm::sys::Path::getBasename was a version of
basename().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8f25c79e59d88df41c5a3cabba1c58035d384a6e 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Use PrettyStackTrace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
7e4534d9c14febcdea30c057bb2a36e245776865 18-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Release Host, ToolChain, and Tool implementations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
5c3c1d7b494660ba5e8983ee4584622750725ac2 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add -ccc-print-bindings option (for testing); the Python
driver has no corresponding option.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
baf07759bc5ccd6f4cab62a2d7ea23321ced7492 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Make sure to get the default arch name from the tool chain, not the
host; the toolchain may differ based on command line arguments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
e504952bc89f79fc9ff54d5641ab30bb07ec435e 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Pass Driver reference down into Host info, which will need it
to pass to ToolChains, which may need Driver specific information (for
example, to form search paths).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1fd6c4b8abbbdcbae0e221f35100102112dabff2 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Hide HostInfo implementations.
- Also, normalize arch names a tad and stub out getToolChain
implementations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
441d060838a5797691777dfcc992ff836b73dcd1 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add logic for computing where to put job outputs (pipe,
temporary file, user provided name, derived name).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
70c168488b9cbadeb66e994c210a69ce4326adf2 17-Mar-2009 Daniel Dunbar <daniel@zuster.org> Fix unused variable warning in -Asserts mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
f353c8cc2ee1cc16ff194b399a8d951f707fb129 16-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Implement majority tool binding logic.
- Still need code for determining proper output location.

- Doesn't work yet, of course, as the host isn't providing real
tool chains.

- Interface still has a few warts, but has gotten a nice bit of
polish during the rewrite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
586dc233bb88f2920c9f3638f69cef0ccd55dced 16-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Migrate some data into the Compilation; after pipelining
access to most data should go through the current Compilation, not the
Driver (which shouldn't be specialized on variables for a single
compilation).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2ba38ba9a18b8ec88e2509fad622eeec01562769 16-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sketch Tool and ToolChain classes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
411f2e42f5f8cd715d39664ed662668af437b16d 15-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: claim input arguments when building phases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8d2554a2c3201aa664cbf2108cf9d57aa0aa4b0a 15-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Start warning about unused arguments.
- This has a number of current flaws, enabling now to flush out
problems while bringing up other parts.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8022fd46d45005de63306a7513aece20a1be16ed 15-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Update ArgList::{hasArg,getLastArg} to optionally claim the
arguments if they exist.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
57b704d8d8f49bcaf856a3e37941d5ac6456eb50 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sprinkle some consts in, stub out BuildJobs method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1368954db9ce2989ed8f03f5c65e8ee775a5229a 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: For universal builds, handle archs in the order they were seen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
83dd21f6b4e6e109b893c0d42bc81e4883c342f7 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Fix '-x none' handling.
- Enough stuff works now we can test argument parsing & pipelining.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3dbd6c51bcd8a730c3fe58e29d7e0d999a94fa91 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Some minor bug fixes.
- language recognition was recognizing prefixes incorrectly.
- -x none wasn't working.
- test for "can lipo" was backwords.
- missed a '"' in -ccc-print-phases


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ab835430b4f758dd49903251c7c7f21b95933c89 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Return 0 from BuildCompilation on -ccc-print-phases,
-ccc-print-options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b269c32596dadf9f653cfffae6981d27e6eebc2e 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Print -ccc-print-phases on stderr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
a88162c1b3922f64914c55ebe2c558881e960426 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Fix thinko in Darwin host identification.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ba1021388e6839b76c8968b931189361c7286674 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Support -ccc-print-phases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
ad2a9af666efdd9afe3bb5f886bcb0d1c9a0f0c3 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Complete "pipelining" (building the list of abstract actions
to perform). Still doesn't do anything interesting.
- This code came out much cleaner than in ccc with the reworked
phases & mapping of types to lists of compilation steps (phases) to
perform.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4139340644a0a41c2529c183c4b60bb55c3fdc79 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Ignore empty arguments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
cb881672c2c46142ec1bdfa401c9818ae805db0f 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle "immediate" options.

Also, add some FIXMEs, improve doxygen & comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
8b1604ece7bf6dc2ba811cd7d8767557e55e2ec2 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> ccc/Driver: Mark {dump{machine,specs,version},
print-{multi-{directory,lib,os-directory}, search-dirs} as unsupported
instead of handling separately.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
af61c71137d1f7239d6b9d7425ce083db7ba31df 13-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Determine which compilation stages to run.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
2fe63e6adac0b9e5f52bcc3100b545e379417e6e 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add majority of driver-driver implementation.
- Compare to driverdriver.c if bored; not completely fair since the
driver gets a bit more code in other places to handle binding archs
(for Xarch) but not completely unfair either.

Fear not, extra Action classes will have a happy home for their
vtables soon.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
d65bddcbe1385a4de212ecbbdc8919c54b3efeb0 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Introduce ActionList typedef, tweak some constness.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
b897f5d3ebfb62c2745e2e2af7faa9920c882438 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Tweak diag names to be more consistent.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4ad4b3ebbe5769143389dccfcfadb666a4ba5940 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Use standard Diagnostic interface for diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
53ec55215075c8f4ddd47ca6ed7d382f16beb670 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Start sketching construction of abstract built actions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
dd98e2cad165ca73c769e4f105a4e47c2216387a 11-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Add host info.
- Replace assorted -ccc-host-* options by -ccc-host-triple which is
more sane.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
365c02f65be026f90e67a8e00e7b827cee60e228 10-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Handle magic -ccc- options.
- Follows ccc currently, but this functionality should eventually be
outside the Driver lib.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
4a77edb3f0fabc8e214a3d5636c4d0aff031645c 10-Mar-2009 Daniel Dunbar <daniel@zuster.org> Remove some now-unneeded calls to llvm::errs().flush().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
0648262df75d97b464c2be0ed867da3615659785 05-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Basic argument parsing.
- Add Driver::ParseArgStrings.
- Store values directly in CommaJoinedArg to support simple access.
- Add FlagArg class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1b3bb6efc59a21f794b534078f9ae7e95393f510 04-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Sink Driver/Compilation into clang::driver namespace.
- Add OptTable instance to Driver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
1eb4e64eed08837b85a375d6a953503daa844f07 03-Mar-2009 Daniel Dunbar <daniel@zuster.org> Sketch Driver Option classes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp
3ede8d0a7d1813f678ccc6011a99a0834b1b6116 02-Mar-2009 Daniel Dunbar <daniel@zuster.org> Stub out some structure for C++ driver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Driver/Driver.cpp