aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
AgeCommit message (Collapse)Author
2011-10-04[driver] Improve r141053 by only emitting the warning if the original inputChad Rosier
was assembly. Otherwise, something like -save-temps causes the integrated assembler to warn. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141127 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04[driver] Improve r141053 by only emitting the warning if the original inputChad Rosier
was assembly. Otherwise, something like -save-temps causes the integrated assembler to warn. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141055 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04[driver] Emit a warning if the user has requested debug information and we'reChad Rosier
using the integrated assembler. rdar://10216353 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141053 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-02Make -fobjc-nonfragile-abi the -cc1 default, since it's theJohn McCall
increasingly prevailing case to the point that new features like ARC don't even support the fragile ABI anymore. This required a little bit of reshuffling with exceptions because a check was assuming that ObjCNonFragileABI was only being set in ObjC mode, and that's actually a bit obnoxious to do. Most, though, it involved a perl script to translate a ton of test cases. Mostly no functionality change for driver users, although there are corner cases with disabling language-specific exceptions that we should handle more correctly now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140957 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30Remove the conditional that avoided passing the Objective-C runtime ↵David Chisnall
specification flags to cc1. This fixes PR10369 (__builtin_NSStringMakeConstantString() selecting the wrong runtime in C / C++ code and crashing, although it doesn't fix the problem that instantiating the Mac runtime for non-Darwin targets was crashing.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140853 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-27Check for GCC paths that have the target triple in them. This is required ↵David Chisnall
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
2011-09-26Make necessary changes in AddMIPSTargetArgs for targeting Mips64. Enable use ofAkira Hatanaka
-mcpu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140562 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-23Switch assert(0/false) llvm_unreachable.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-22Add support for CPATH and friends.Benjamin Kramer
This moves the existing code for CPATH into the driver and adds the environment lookup and path splitting there. The paths are then passed down to cc1 with -I options (CPATH), added after the normal user-specified include dirs. Language specific paths are passed via -LANG-isystem and the actual filtering is performed in the frontend. I tried to match GCC's behavior as close as possible Fixes PR8971. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21Add case labels for Mips64 architectures.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140226 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20[driver] Default to arm mode when using the integrated assembler.Chad Rosier
rdar://10125227 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140179 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17As per discussion with Doug Gregor on the IRC channel, introduce a new ↵Francois Pichet
compiler switch: -fms-compatility. Microsoft specific tweaking will now fall into 2 categories: - fms-extension: Microsoft specific extensions that should never change the meaning of an otherwise well formed code. Currently map to LangOptions::Microsoft. (To be clearer, I am planning to change the name to LangOptions::MicrosoftExt). - fms-compatibility: Really a MSVC emulation mode. Map to LangOptions::MicrosoftMode. Can change the meaning of an otherwise standard conformant program. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139978 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17Pass -fmodule-cache-path along to -cc1 properlyDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139977 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Add an experimental flag -fauto-module-import that automatically turnsDouglas Gregor
#include or #import direcctives of framework headers into module imports of the corresponding framework module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139860 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14Teach the driver to always pass down a module cache path. If none isDouglas Gregor
supplied, use something derived from the system's temporary directory. Depends on LLVM r139725. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139726 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-09Treat the weak export of block runtime symbols as a deployment-targetJohn McCall
feature akin to the ARC runtime checks. Removes a terrible hack where IR gen needed to find the declarations of those symbols in the translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139404 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08[driver] i386 kext preprocessor jobs also need their unsupported options Chad Rosier
filtered. This happenis when -save-temps is specified. <rdar://problem/10088387> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139269 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-01Enable -fdelayed-template-parsing by default on Win32.Francois Pichet
I had to force -fno-delayed-template-parsing on some Index tests because delayed template parsing will change the output of some tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138942 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-31objective-c: this patch (re)introduces objective-c's default propertyFariborz Jahanian
synthesis. This new feature is currently placed under -fobjc-default-synthesize-properties option and is off by default pending further testing. It will become the default feature soon. // rdar://8843851 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138913 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-26[driver] When generating temporary files allow a prefix to be added. In manyChad Rosier
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
2011-08-26[driver] Remove a few more options when clang invokes cc1plus for i386 kexts.Chad Rosier
<rdar://problem/10027287> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138637 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-26[driver] Add -mglobal-merge/-mno-global-merge machine options to ↵Chad Rosier
enable/disable merging of globals during codegen. Fixes <rdar://problem/10017909>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-26revert 138610, accidental commit.Francois Pichet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-26git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138610 ↵Francois Pichet
91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-23Add support for a verifier to the driver. Currently only verifies debugEric Christopher
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
2011-08-23enable -fstack-protector on 10.5 for usermode binaries by default.Nico Weber
This matches gcc's behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138324 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-19Add a completely hacky workaround for pch kext files with different extensionsEric Christopher
when falling back to cc1plus for our compile. rdar://9963920 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138017 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18Use StringRef, rather than C string APIs.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137958 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18No seriously, remove the unsupported warning options.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137918 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18Fix off by one.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137915 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18[driver] Implement in a more table-like manner and add many more warning optionsChad Rosier
that aren't handled by llvm-gcc on fallback. Enhancement to rdar://9964354 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137912 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-18Add some more options that aren't handled by llvm-gcc on fallback.Eric Christopher
This is going to be made a table. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137907 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Fix else style. No functionality change intended.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137896 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Fix iterator end for r137842.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137849 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17[driver] Clang doesn't support -mkernel/-fapple-kext for i386, so it's Chad Rosier
automatically invoking llvm-gcc's cc1plus, which doesn't support all options supported by Clang. Therefore, filter out unsupported options. rdar://9964354 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137842 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-13Reject -mkernel for i386/Darwin C++ code; fall back to llvm-gcc instead.Bob Wilson
Since -mkernel implies -fapple-kext, this just extends the current behavior for -fapple-kext to apply for -mkernel as well. Radar 9933387. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137566 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-13Add support of -x objc-cpp-output, -x objc++-cpp-output to the Driver.Nico Weber
Matches gcc, and is also required for using ccache with clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137563 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02When the compiler crashes, the compiler driver now produces diagnostic Chad Rosier
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
2011-08-01Driver: When compiling i386 -fapple-kext code, we fallback to llvmgcc.Chad Rosier
Unfortunately, llvmgcc doesn't always work when writing temporary output to /dev/null. Therefore, create a temp file that is later deleted. rdar://9837692 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136644 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28Introduce the "-index-header-map" option, to give special semanticsDouglas Gregor
for quoted header lookup when dealing with not-yet-installed frameworks. Fixes <rdar://problem/9824020>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136331 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-23remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner
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
2011-07-21Avoid warning on "clang -c -Dfoo test.i". Lines like these are createdRafael Espindola
when using ccache and libtool.m4 assumes that the compiler cannot print warnings about options it knows about. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135723 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-20Temporarily revert r135614 while I fix the cmake build.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135621 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-20When the compiler crashes, the compiler driver now produces diagnostic ↵Chad Rosier
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
2011-07-20introduce a centralized place to introduce and inject llvm types into theChris Lattner
clang namespace. There are a number of LLVM types that are used pervasively and it doesn't make sense to keep qualifying them. Start with casting operators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135574 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-19[arcmt] Add some additional driver flags to optionally emit or save the ↵Argyrios Kyrtzidis
pre-migration ARC errors. -arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else -arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file rdar://9791454 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135491 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-12Implement -MG. Fixes PR9613Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-09[arcmt] Introduce new '-ccc-arcmt-migrate <path>' ARC migration driver option.Argyrios Kyrtzidis
This is a new mode of migration, where we avoid modifying the original files but we emit temporary files instead. <path> will be used to keep migration process metadata. Currently the temporary files that are produced are put in the system's temp directory but we can put them in the <path> if is necessary. Also introduce new ARC migration functions in libclang whose only purpose, currently, is to accept <path> and provide pairs of original file/transformed file to map from the originals to the files after transformations are applied. Finally introduce the c-arcmt-test utility that exercises the new libclang functions, update arcmt-test, and add tests for the whole process. rdar://9735086. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134844 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07[arcmt] Add -ccc-arcmt-check/-ccc-arcmt-modify driver option aliases.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134591 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-06Somehow the -fgnu-runtime option itself got lost in all that shuffling.John McCall
Restore it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134459 91177308-0d34-0410-b5e6-96231b3b80d8