Daniel Dunbar
1acb0eb24f
Driver: Give Compilation::Execute total control over the Driver result
...
code; and don't return an error code when -### is present, even if
errors occur.
llvm-svn: 67425
2009-03-21 00:40:53 +00:00
Daniel Dunbar
ea9f032613
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.
llvm-svn: 67418
2009-03-20 23:39:23 +00:00
Daniel Dunbar
9b726f88a2
ccc: Use -include-pth.
...
llvm-svn: 67410
2009-03-20 22:13:54 +00:00
Daniel Dunbar
da382a88bf
Driver: Get executable path using llvm::sys::Path::GetMainExecutable.
...
llvm-svn: 67228
2009-03-18 20:25:53 +00:00
Daniel Dunbar
d72468a61b
ccc: Pass --relocation-model as separate arguments (to match Driver).
...
llvm-svn: 67190
2009-03-18 09:36:19 +00:00
Daniel Dunbar
d9b80c2af8
Driver: Use custom diag printer to drop dependency on libFrontend and
...
libLex.
llvm-svn: 67155
2009-03-18 02:11:26 +00:00
Daniel Dunbar
2608c548b5
Driver: Use PrettyStackTrace.
...
llvm-svn: 67149
2009-03-18 01:38:48 +00:00
Douglas Gregor
23d75bb326
Build system changes to use TableGen to generate the various
...
diagnostics. This builds on the patch that Sebastian committed and
then revert. Major differences are:
- We don't remove or use the current ".def" files. Instead, for now,
we just make sure that we're building the ".inc" files.
- Fixed CMake makefiles to run TableGen and build the ".inc" files
when needed. Tested with both the Xcode and Makefile generators
provided by CMake, so it should be solid.
- Fixed normal makefiles to handle out-of-source builds that involve
the ".inc" files.
I'll send a separate patch to the list with Sebastian's changes that
eliminate the use of the .def files.
llvm-svn: 67058
2009-03-16 23:06:59 +00:00
Daniel Dunbar
e75d834c7c
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.
llvm-svn: 67038
2009-03-16 06:56:51 +00:00
Daniel Dunbar
a493ff47bd
Update test.
...
llvm-svn: 66967
2009-03-13 22:11:42 +00:00
Daniel Dunbar
427d6f1a95
ccc: Handle limited forms of -ccc-host-triple for testing
...
compatibility with C++ rewrite.
llvm-svn: 66938
2009-03-13 20:33:09 +00:00
Daniel Dunbar
52183091f1
ccc/Driver: Forward -fheinous-gnu-extensions to clang.
...
llvm-svn: 66915
2009-03-13 18:12:01 +00:00
Daniel Dunbar
7326ad57a4
ccc/Driver: Normalize phase spelling in -ccc-print-phases.
...
llvm-svn: 66912
2009-03-13 17:52:07 +00:00
Daniel Dunbar
3efedddcf9
Driver: Return 0 from BuildCompilation on -ccc-print-phases,
...
-ccc-print-options.
llvm-svn: 66907
2009-03-13 17:24:34 +00:00
Daniel Dunbar
92d19016b5
ccc: Don't print the arch for every action when printing phases.
...
llvm-svn: 66886
2009-03-13 12:16:31 +00:00
Daniel Dunbar
5a3b818dea
ccc/Driver: Forward -fprint-source-range-info to clang.
...
llvm-svn: 66879
2009-03-13 10:03:45 +00:00
Daniel Dunbar
34c4187152
ccc/Driver: Mark {dump{machine,specs,version},
...
print-{multi-{directory,lib,os-directory}, search-dirs} as unsupported
instead of handling separately.
llvm-svn: 66848
2009-03-13 00:17:48 +00:00
Daniel Dunbar
f336cc279c
ccc: Fix broken assertion.
...
llvm-svn: 66793
2009-03-12 15:59:34 +00:00
Daniel Dunbar
024882184b
ccc: Fix -ccc-print-phases when doing a universal build.
...
llvm-svn: 66792
2009-03-12 15:57:47 +00:00
Daniel Dunbar
c0b3e95a1a
Driver: Use standard Diagnostic interface for diagnostics.
...
llvm-svn: 66786
2009-03-12 08:55:43 +00:00
Daniel Dunbar
6f2650de80
ccc: Tweak some group names.
...
llvm-svn: 66772
2009-03-12 04:50:20 +00:00
Daniel Dunbar
a27669f1d8
ccc: Cleanup arguments a bit; we don't need a separate group for
...
-fblocks, and there were some duplicate options scattered in.
llvm-svn: 66764
2009-03-12 03:28:55 +00:00
Daniel Dunbar
d295bf1d46
ccc: -x assembler-with-cpp was broken for darwin, and it wasn't using
...
clang as the preprocessor even when it should.
llvm-svn: 66737
2009-03-11 23:07:54 +00:00
Daniel Dunbar
4dff6a4973
Driver: Add host info.
...
- Replace assorted -ccc-host-* options by -ccc-host-triple which is
more sane.
llvm-svn: 66600
2009-03-10 23:41:59 +00:00
Daniel Dunbar
ee66cf2249
Driver: Handle magic -ccc- options.
...
- Follows ccc currently, but this functionality should eventually be
outside the Driver lib.
llvm-svn: 66575
2009-03-10 20:52:46 +00:00
Daniel Dunbar
7ea58c355b
Forward -ftemplate-depth-<N> to clang's -ftemplate-depth N.
...
llvm-svn: 66516
2009-03-10 00:35:30 +00:00
Daniel Dunbar
1e6efc0cf4
ccc: Parse -T{bss,data,text}, -iwithsysroot, -specs correctly.
...
Also, fix some test cases.
llvm-svn: 66425
2009-03-09 17:43:51 +00:00
Daniel Dunbar
13e9eff3f2
Fix thinko. *cough* ofcourseItestedit *cough*
...
llvm-svn: 66283
2009-03-06 18:35:43 +00:00
Daniel Dunbar
3a45e4fffb
Tidy file removal cleanup & remove race condition on file existence.
...
llvm-svn: 66281
2009-03-06 18:32:01 +00:00
Daniel Dunbar
b2cd66bf4d
Driver: Sink Driver/Compilation into clang::driver namespace.
...
- Add OptTable instance to Driver.
llvm-svn: 66063
2009-03-04 20:49:20 +00:00
Daniel Dunbar
03f32e7638
ccc: Fix passing of -nozero-initialized-in-bss.
...
- PR3722.
llvm-svn: 66052
2009-03-04 19:17:10 +00:00
Daniel Dunbar
5637208a88
Driver: More Option implementation.
...
- Add Options.def file, collects option information.
- Actual option instantiation is handled lazily by OptTable to allow
the driver to not need to instantiate all options.
- cast<> support for Option, other minor tweaks.
llvm-svn: 66028
2009-03-04 08:33:23 +00:00
Daniel Dunbar
b2da933989
Sketch Driver Option classes.
...
llvm-svn: 65933
2009-03-03 05:55:11 +00:00
Daniel Dunbar
544ecd14b6
Stub out some structure for C++ driver.
...
llvm-svn: 65867
2009-03-02 19:59:07 +00:00
Ted Kremenek
32a59b2315
Do not automatically run the 'missing -dealloc' check until we have adequate time to make it much smarter (too much noise).
...
llvm-svn: 65474
2009-02-25 21:08:30 +00:00
Daniel Dunbar
cdff38b1f6
ccc: Don't remove result files on error when -save-temps is present.
...
llvm-svn: 65349
2009-02-23 23:37:18 +00:00
Daniel Dunbar
9e5dfc6111
ccc: Remove unknown host warning, it was breaking gcc's configure.
...
llvm-svn: 65276
2009-02-22 08:15:14 +00:00
Daniel Dunbar
f175ba1d17
ccc: Remove temporary files used in compilation, and remove
...
compilation results on failures.
llvm-svn: 65254
2009-02-22 01:23:52 +00:00
Daniel Dunbar
e8f256c7f9
Unbreak Darwin PIC handling; my refactoring yesterday was bogus.
...
llvm-svn: 65154
2009-02-20 20:52:47 +00:00
Daniel Dunbar
6ef6a04dd6
Fix test case.
...
llvm-svn: 65139
2009-02-20 18:53:07 +00:00
Daniel Dunbar
ba1c8f5a3c
ccc: Spell mattr correctly.
...
llvm-svn: 65119
2009-02-20 07:47:48 +00:00
Daniel Dunbar
e1889f935a
ccc: Basic translation of gcc subtarget feature options to LLVM
...
options (i.e., -mno-red-zone, -msoft-float, -mno-sse, etc.)
- Also, make sure unwind tables default to on Darwin/x86_64.
- PR3604.
llvm-svn: 65118
2009-02-20 07:35:04 +00:00
Daniel Dunbar
b9b440cde6
ccc: Use toolchain hook for default relocation model value.
...
llvm-svn: 65116
2009-02-20 06:48:26 +00:00
Daniel Dunbar
63e03cbe8c
ccc: Use toolChain arch name instead of looking for arch command line
...
argument; the toolchain should always know the arch.
- Fixes: <rdar://problem/6582911> -ccc-clang-archs doesn't work for excluding ppc
llvm-svn: 65104
2009-02-20 01:48:01 +00:00
Daniel Dunbar
1b84824f83
ccc: Store arch name in all toolchains.
...
- No functionality change.
llvm-svn: 65102
2009-02-20 01:36:35 +00:00
Daniel Dunbar
92cfae68e9
ccc: Give all tools access to the toolchain they are in.
...
- No functionality change.
llvm-svn: 65100
2009-02-20 01:30:38 +00:00
Daniel Dunbar
2a07da78c0
ccc: Give nicer error when spawning a subprocess fails.
...
llvm-svn: 65075
2009-02-19 22:59:57 +00:00
Daniel Dunbar
a118a07157
ccc: Also look for .gch files when seeing if we should auto load a
...
token-cache for clang.
llvm-svn: 65069
2009-02-19 22:01:23 +00:00
Daniel Dunbar
5805c98526
ccc: Forward -ftime-report to clang.
...
llvm-svn: 64887
2009-02-18 05:01:43 +00:00
Daniel Dunbar
7b8b7492dd
ccc: Pass -{MM,MMD,MF,MP,MT} to clang. Error on -{M,MM,MG,MQ} which
...
clang doesn't support yet.
- See PR3603.
llvm-svn: 64783
2009-02-17 19:02:12 +00:00
Daniel Dunbar
89f908b883
ccc: Recognize -isystem.
...
llvm-svn: 64776
2009-02-17 18:10:48 +00:00
Daniel Dunbar
ce96aea9ec
ccc: Assume gcc will accept piped assembler input when using generic GCC toolchain.
...
llvm-svn: 64775
2009-02-17 18:10:15 +00:00
Daniel Dunbar
8ceb91f41b
ccc: Fix a FIXME.
...
llvm-svn: 64774
2009-02-17 18:07:00 +00:00
Ted Kremenek
b535181199
Static Analyzer driver/options (partial) cleanup:
...
- Move all analyzer options logic to AnalysisConsumer.cpp.
- Unified specification of stores/constraints/output to be:
-analyzer-output=...
-analyzer-store=...
-analyzer-constraints=...
instead of -analyzer-range-constraints, -analyzer-store-basic, etc.
- Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new
interface
- Updated test cases to conform to new driver options
llvm-svn: 64737
2009-02-17 04:27:41 +00:00
Daniel Dunbar
46414874a5
ccc: Pass -f[no-]math-errno to clang.
...
llvm-svn: 64709
2009-02-17 00:42:05 +00:00
Daniel Dunbar
a1c37501ed
ccc: @<filename> arguments are only treated specially if <filename>
...
exists, otherwise gcc just treats as an input.
- PR3591
llvm-svn: 64640
2009-02-16 18:18:43 +00:00
Daniel Dunbar
87f7ba3541
ccc: Pass -P to clang.
...
llvm-svn: 64578
2009-02-15 05:59:37 +00:00
Douglas Gregor
69c7951c8e
Add -ffreestanding to suppress the implicit declaration of library builtins like printf and malloc. Fixes PR3586
...
llvm-svn: 64566
2009-02-14 20:49:29 +00:00
Daniel Dunbar
72e90d7fb0
ccc: Suffix for PCH files is appended, not replaced. (Test case)
...
llvm-svn: 64467
2009-02-13 17:42:52 +00:00
Daniel Dunbar
b903a072b1
ccc: Suffix for PCH files is appended, not replaced.
...
llvm-svn: 64466
2009-02-13 17:42:34 +00:00
Daniel Dunbar
7ae70391f0
ccc: Test case for transparent PTH support.
...
llvm-svn: 64420
2009-02-13 00:49:50 +00:00
Daniel Dunbar
391fc04b02
ccc: Stop patching output file name when using transparent PTH support.
...
<rdar://problem/6515236> [ccc] generate expected output files when used with PCH
llvm-svn: 64419
2009-02-13 00:49:01 +00:00
Daniel Dunbar
e21993fa98
Always pass -disable-free to clang when compiling.
...
llvm-svn: 64416
2009-02-13 00:29:22 +00:00
Mike Stump
f9cf4fa08c
One more tweak to account for gluing together llvm and clang into one.
...
llvm-svn: 64276
2009-02-11 01:11:36 +00:00
Mike Stump
9d5d3b9de5
More version experimentation.
...
llvm-svn: 64271
2009-02-11 01:01:17 +00:00
Mike Stump
081e354f11
Run a little experiment with version numbers.
...
llvm-svn: 64268
2009-02-11 00:36:04 +00:00
Daniel Dunbar
8a1ca06456
ccc: -dM wasn't being passed to Darwin/CC1 correctly.
...
llvm-svn: 64169
2009-02-09 21:22:38 +00:00
Daniel Dunbar
1a5f04dc66
ccc: Forward -dM to clang.
...
llvm-svn: 63955
2009-02-06 19:26:48 +00:00
Daniel Dunbar
421d40c22b
ccc/Darwin: Add a missing Darwin argument translation, -shared becomes
...
-dynamiclib. Re-audited translations to make sure I didn't miss
something else.
llvm-svn: 63953
2009-02-06 19:18:58 +00:00
Daniel Dunbar
ba3325af7b
ccc: Give explicit error on @ style argument lists (not yet supported).
...
llvm-svn: 63903
2009-02-06 01:28:59 +00:00
Daniel Dunbar
724167c280
ccc: Implement special language recognition handling for -.
...
- <rdar://problem/6551577> [ccc] require -x with -
llvm-svn: 63901
2009-02-05 23:44:44 +00:00
Daniel Dunbar
e7dffe39ff
ccc: Translate -O to -O1 for clang, and only pass last -O option.
...
llvm-svn: 63816
2009-02-05 02:43:38 +00:00
Daniel Dunbar
ed9309ef46
ccc: Forward -femit-all-decls to clang and use an option group to
...
simplify handling of -f options clang recognizes.
llvm-svn: 63778
2009-02-04 21:21:08 +00:00
Daniel Dunbar
3ba943ed7a
ccc: -ObjC and -ObjC++ change default language, but only for "source
...
files".
llvm-svn: 63727
2009-02-04 08:01:01 +00:00
Daniel Dunbar
ed1ba4fc12
Use /usr/bin/env to run Python for increased portability. Patch by
...
David Chisnall.
llvm-svn: 63661
2009-02-03 21:25:26 +00:00
Mike Stump
c99d003b25
Add -fno-blocks support. This fixes block-no-block-def.c.
...
llvm-svn: 63385
2009-01-30 08:22:07 +00:00
Daniel Dunbar
6d6d01f254
ccc: Forward -fobjc-nonfragile-abi to clang.
...
llvm-svn: 63378
2009-01-30 04:43:19 +00:00
Daniel Dunbar
3fc8ea64c9
ccc: Add -Xclang option, rename -WA, to -Xanalyzer.
...
- -Xclang always forwards to clang
- -Xanalyzer replaces -WA,; it seems like the cleaner mechanism and
is more readable.
llvm-svn: 63349
2009-01-30 00:24:16 +00:00
Daniel Dunbar
b6e6a513c2
ccc: Mark -combine option as unsupported.
...
llvm-svn: 63348
2009-01-30 00:12:29 +00:00
Daniel Dunbar
711e882c1b
ccc: Embrace destiny as a clang compiler driver.
...
This redoes the default mode that ccc runs in w.r.t. using clang. Now
ccc defaults to always using clang for any task clang can
handle. However, the following options exist to tweak this behavior:
-ccc-no-clang: Don't use clang at all for compilation (still used for
static analysis).
-ccc-no-clang-cxx: Don't use clang for C++ and Objective-C++ inputs.
-ccc-no-clang-cpp: Don't use clang as a preprocessor.
-ccc-clang-archs <archs>: If present, only use clang for the given
comma separated list of architectures. This only works on Darwin for
now.
Note that all -ccc options must be first on the command line.
llvm-svn: 63346
2009-01-29 23:54:06 +00:00
Daniel Dunbar
df49b7cf2f
ccc: Honor -ccc-clang for generic GCC toolchain.
...
llvm-svn: 63277
2009-01-29 06:12:22 +00:00
Daniel Dunbar
ad0d48d372
Fix test case (for -### printing version)
...
llvm-svn: 63223
2009-01-28 19:30:43 +00:00
Daniel Dunbar
36ccb30a35
ccc: Support -v; invent a version number for ccc for now, will be
...
shared with clang eventually.
llvm-svn: 63220
2009-01-28 19:26:20 +00:00
Daniel Dunbar
f4a0cba545
ccc/Darwin/clang: Fix a mistranslation for the llvm-backend; llvm-gcc
...
doesn't set the relocation model when -mdynamic-no-pic is present.
llvm-svn: 63129
2009-01-27 20:42:58 +00:00
Daniel Dunbar
2ad3ff0bd6
ccc: Normalize machine name to i386 for platforms which report the
...
machine as x86_64.
llvm-svn: 63122
2009-01-27 19:29:51 +00:00
Daniel Dunbar
a7ff032643
ccc: -o should not be automatically forwarded to generic gcc tools.
...
llvm-svn: 63015
2009-01-26 18:00:14 +00:00
Daniel Dunbar
f3a06113c7
ccc: Recognize -emit-llvm [-S].
...
- Unlike llvm-gcc, this doesn't yet treat -emit-llvm output as a
linker input.
llvm-svn: 63014
2009-01-26 17:09:15 +00:00
Daniel Dunbar
3d5d14ea15
ccc: Finish definition of long argument translations.
...
- However, these last ones do not actually work; the issue is that
they translate to batches of options and need to be reparsed. For
now we just give an unsupported error on them.
llvm-svn: 62872
2009-01-23 20:08:16 +00:00
Daniel Dunbar
505f751451
ccc: Another batch of long argument translations.
...
- Again turned up a few which don't do anything sensible.
llvm-svn: 62870
2009-01-23 19:40:54 +00:00
Daniel Dunbar
8fb96605f8
ccc: Implement long options which take joined & separate forms.
...
llvm-svn: 62841
2009-01-23 08:16:41 +00:00
Daniel Dunbar
8fa972a55b
ccc: Support long ('--...') flag arguments.
...
- Curiously, a number of the current translations gcc does appear to
be useless?
llvm-svn: 62831
2009-01-23 02:00:46 +00:00
Daniel Dunbar
e2c430b317
ccc: Organize long options together.
...
llvm-svn: 62829
2009-01-23 01:31:44 +00:00
Daniel Dunbar
eff67fa33b
ccc: Add support for several more aliases (--ansi, --assemble,
...
--assert, --classpath).
- Requires providing some option parameters to over-ride rendering in
order to match gcc. There may be a cleaner way to do this (probably
by introducing a new option type for long JoinedOrSeparate forms).
llvm-svn: 62825
2009-01-23 00:54:03 +00:00
Daniel Dunbar
58645d0285
ccc: Darwin/x86/link: Fix a few incompatibilities with gcc (missed
...
forwarding -s to linker, and was only taking last arg in some cases
when should have been taking all).
llvm-svn: 62824
2009-01-23 00:39:52 +00:00
Daniel Dunbar
4bb6a2fcd3
ccc: Add support for "alias" options.
...
- Unlike groups (which gather distinct but related options), aliases
are for options like '--all-warnings' which are effectively treated
like some other option ('-Wall') both in the driver logic and when
passing to tools.
llvm-svn: 62820
2009-01-23 00:14:46 +00:00
Daniel Dunbar
ccabd0f01a
ccc: Fix typo; isn't dynamic typing fun!
...
llvm-svn: 62817
2009-01-23 00:04:43 +00:00
Daniel Dunbar
2e1cfd0267
ccc: Bug fix, driver logic was allowing child jobs to pipe output when
...
parent wasn't expecting it.
llvm-svn: 62811
2009-01-22 23:19:32 +00:00
Daniel Dunbar
d89187696f
ccc/clang: Mimic llvm-gcc initialization of LLVM backend based on gcc
...
options (for example, to set relocation model or enable unwind table generation).
llvm-svn: 62740
2009-01-22 01:55:46 +00:00
Daniel Dunbar
d00bca3572
ccc: Handle a few long argument form (--) translations using option
...
groups, and fix misdeclaration of some -W options.
llvm-svn: 62702
2009-01-21 18:49:34 +00:00
Daniel Dunbar
f2e3d81cb4
ccc: Add appropriate file search prefixes when on x86_64 Darwin, and
...
look for crt3.o appropriately.
llvm-svn: 62694
2009-01-21 17:18:19 +00:00