aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
AgeCommit message (Collapse)Author
2009-05-01Implement -fmessage-length=N, which word-wraps diagnostics to N columns. Douglas Gregor
Also, put a line of whitespace between the diagnostic and the source code/caret line when the start of the actual source code text lines up (or nearly lines up) with the most recent line of the diagnostic. For example, here it's okay for the last line of the diagnostic to be (vertically) next to the source line, because there is horizontal whitespace to separate them: decl-expr-ambiguity.cpp:12:16: error: function-style cast to a builtin type can only take one argument typeof(int)(a,5)<<a; However, here is a case where we need the vertical separation (since there is no horizontal separation): message-length.c:10:46: warning: incompatible pointer types initializing 'void (int, float, char, float)', expected 'int (*)(int, float, short, float)' int (*fp1)(int, float, short, float) = f; This is part one of <rdar://problem/6711348>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Make sure to pass the same options to the static analyzer as theDaniel Dunbar
compiler. - Code generation options may still affect the language... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-28With -ccc-pch-is-pch, always treat precompiled inputs as PCH,Daniel Dunbar
regardless of extension. - Otherwise we can't expect that just plugging in -ccc-pch-is-pch will work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70318 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26Driver: Add -std-default= option.Daniel Dunbar
- This can be used to supply a default value for -std=; the idea is that this can be used in conjunction with CCC_ADD_ARGS or QA_OVERRIDE_GCC3_OPTIONS to change the default without having to modify the build system. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70102 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25Driver: -mkernel disables default use of unwind tables (although IDaniel Dunbar
don't yet understand where this is happening in llvm-gcc). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25Driver: -mkernel and -fapple-kext imply -mno-red-zone.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70010 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-24Don't run dsymutil when making a fat executable direct source.Daniel Dunbar
- Otherwise, we will end up with stray .dSYM files which don't get lipo'ed or removed. - Ideally we would run dsymutil on the result, but we don't have the infrastructure for that yet. Note that gcc doesn't handle this case either. - <rdar://problem/6809621> [driver] clang leaves .dSYM files lying around in tmp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-23Call ld, not collect2.Daniel Dunbar
- <rdar://problem/6517382> [driver] call ld directly git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21rename -fprint-source-range-info -> -fdiagnostics-print-source-range-info.Chris Lattner
Temporarily accept both of them, I'll rip out the old one after awhile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69662 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Forward f[no-]dollars-in-identifiers to clang, when specified.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Forward -fno-diagnostics-fixit-info to clang-cc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69546 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Preliminary PCH support in the driverDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Added -print-ivar-layout option. No change in functionalityFariborz Jahanian
yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Pass -fdiagnostics-show-option to clang-cc by default.Daniel Dunbar
- <rdar://problem/6796848> implement -fdiagnostics-show-option git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Driver: Forward -W* to clang, it can handle all these itself now.Daniel Dunbar
Remove clang_W_Group and clang_ignored_W_Group. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69261 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Driver: For clang, accept -fsigned-bitfields and rejectDaniel Dunbar
-funsigned-bitfields for now (clang defaults to -fsigned-bitfields). - <rdar://problem/6790309> ER: Support -fsigned-bitfields/-funsigned-bitfields git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69131 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-12Implement support for GCC's -dD mode, which dumps -E output *and*Chris Lattner
macro definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-10Driver: Forward -miphoneos-version-min to clang.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Driver: Split out CPP specific options for clang so that we don't endDaniel Dunbar
up adding them twice when running with -no-integrated-cpp or -save-temps. - <rdar://problem/6766636> -save-temps falls over with prefix headers git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68660 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08More fixes to builtin preprocessor defines.Daniel Dunbar
- Add -static-define option driver can use when __STATIC__ should be defined (instead of __DYNAMIC__). - Don't set __OPTIMIZE_SIZE__ on Os, __OPTIMIZE_SIZE__ is tied to Oz. - Set __NO_INLINE__ following GCC 4.2. - Set __GNU_GNU_INLINE__ or __GNU_STDC_INLINE__ following GCC 4.2. - Set __EXCEPTIONS for Objective-C NonFragile ABI. - Set __STRICT_ANSI__ for standard conforming modes. - I added a clang style test case in utils for this, but its not particularly portable and I don't think it belongs in the test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68621 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Darwin ld: Unconditionally add -lstdc++ if we are pretending to beDaniel Dunbar
g++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Make debug info work when using -save-temps.Daniel Dunbar
- This is pretty ugly, but the most obvious solution. Chime in if you have a nicer one. - The problem is that with -save-temps, clang-cc has no idea what the name of the original input file is. However, the user expects to be able to set breakpoints based on the input file name. - We support this by providing a new option -main-file-name (similar to -dumpbase used by gcc) which allows the driver to pass in the original file name. - <rdar://problem/6753383> building with clang using --save-temps gets the compile unit name from the .i file... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Set __PIC__ (more) correctly.Daniel Dunbar
- Add -pic-level clang-cc option to specify the value for the define, updated driver to pass this. - Added __pic__ - Added OBJC_ZEROCOST_EXCEPTIONS define while I was here (to match gcc). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Fix forwarding of -fpascal-strings.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68570 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Fix forwarding of -{std,ansi,trigraphs} when there areDaniel Dunbar
multiple instances of an option. Also, removed direct -ansi support from clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Forward remaining -f options to clang manually.Daniel Dunbar
- Groups are really just intended to hold inherent structure of the options, not be abused for individual tool argument translation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Only forward last instance of -mmacosx-version-min= andDaniel Dunbar
-isysroot to clang. - Don't forward arbitrary -i* options to clang, just the ones we know about. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Manually translate a number of -f with no- variants options toDaniel Dunbar
clang. - We will eventually want some more driver infrastructre for this probably. - For now, the clang-cc interface stays relatively the same, but we don't accept multiple instances anymore, or the [no-] variants directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: Explicitly warn that -pg isn't supported (even though weDaniel Dunbar
aren't failing the compilation). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Driver: More verbosity reduction.Daniel Dunbar
- Ignore some more -W options and -[fm] options which we can somewhat safely ignore. - Recognize that -W is an alias for -Wextra W: -Wdeclaration-after-statement -Werror-implicit-function-declaration -Wfour-char-constants -Winit-self -Wmissing-format-attribute -Wno-#warnings -Wno-comment -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wstrict-prototypes -Wunused-parameter f: -fconstant-cfstrings -fdollars-in-identifiers -finline -finline-functions -fno-inline -fno-keep-inline-functions -fno-strict-aliasing -fobjc-atdefs -fobjc-call-cxx-cdtors -fobjc-new-property -fstack-protector m: -mconstant-cfstrings -mfix-and-continue git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68487 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-04Driver: Handle properly calling dsymutil when source input isDaniel Dunbar
preceeded by a linker input flag. - <rdar://problem/6757236> clang should make a dSYM when going straight from source to binary - This still matches gcc, but the right way to solve this would be to detect the situation we care about (we are compiling from source and linking in one step), instead of looking at the suffix of the input file. The Tool doesn't quite have enough information to do this yet, however. - Also, find the suffix correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68417 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-03Driver: Explicitly ignore -fpch-preprocess when using clang, we don'tDaniel Dunbar
need to do anything special to support this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-03Driver: Add missed translation for darwin::Preprocess (gcc), -d*Daniel Dunbar
wasn't being forwarded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68365 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-02Add some whitespace to test my commit privileges.Ed Schouten
Approved by: ddunbar git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Driver: Allow -ccc-gcc-name to specify the name/path to use whenDaniel Dunbar
calling gcc in generic configurations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68260 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Quick and dirty (!) fix to make sure we use powerpc in triples.Daniel Dunbar
- 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
2009-04-01Driver: Add freebsd::LinkDaniel Dunbar
- Patch by Ed Schouten! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68233 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Remove a FIXME, use -emit-pth to drive PTH generation.Daniel Dunbar
- c.f. r68164 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68184 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Tweak/cleanup darwin::Link a bit, add several FIXMES, and improve testDaniel Dunbar
case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68182 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Tweak darwin::Assemble and add a FIXME.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68165 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31Driver: Forward -Wp, and -Xpreprocessor arguments to clang when usingDaniel Dunbar
the preprocessor. - PR3602. - As is inherent in the blanket forwarding options, this will only work if clang-cc happens to accept what the user passed. Users by and large should use driver options to interact with the preprocessor, if at all possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68144 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31Driver: Call 'as' directly on FreeBSD.Daniel Dunbar
- Patch by Ed Schouten! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68121 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-31(LLVM up) Update to use llvm::sys::getHostTriple().Daniel Dunbar
- Always pass -triple to clang-cc (-arch will be removed). - clang-cc doesn't play guess work with the target triple anymore. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Fix -MD with no -MT when -o is specified (and fix test case).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68042 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30Driver: Support -M and -MM.Daniel Dunbar
- 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
2009-03-30Improve dependency file support.Daniel Dunbar
- Rip out various bits of logic from clang-cc's dependency file gen, force driver to provide instead. - -MD output now goes to proper location <rdar://problem/6723948> clang -MD puts dep file in /tmp with wrong name - -M and -MM still don't work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29Driver: Add test case for darwin::Preprocess and darwin::CompileDaniel Dunbar
tools, and enable them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68019 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29Driver: Finish porting Darwin::Preprocess and Compile port (stillDaniel Dunbar
unused, and lacking a test case). - ccc is now on death row, pending some more testing and bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29Driver: Start porting Darwin::Preprocess and Compile implementationsDaniel Dunbar
(currently unused). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68003 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-27Driver: Pass -f[no-]pascal-strings on to clang, even if it has beenDaniel Dunbar
turned into -m[no-]pascal-strings by the tool chain. - This still has issue that derived arguments don't propogate "used" information correctly so spurious "argument unused" warnings will still show up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67841 91177308-0d34-0410-b5e6-96231b3b80d8