Daniel Dunbar
0ac66427a9
clang -cc1: Use proper diagnostics for all parsing errors.
...
llvm-svn: 90100
2009-11-29 21:52:53 +00:00
Daniel Dunbar
fcb9caa772
Change CompilerInvocation::CreateFromArgs to report errors using a proper diagnostic engine.
...
- Clients that care about having the diagnostics output honor the user-controllable diagnostic options can buffer the diagnostics and issue them later.
llvm-svn: 90092
2009-11-29 20:58:50 +00:00
Daniel Dunbar
65ca1c6f02
Change CompilerInvocation::CreateFromArgs to take Argv0 and the address of main (or something in the main executable) so it can find the builtin compiler files.
...
llvm-svn: 90090
2009-11-29 20:58:32 +00:00
Daniel Dunbar
a1b02a2380
Move LLVM backend options to explicit clang-cc / clang -cc1 options, which we then manually pass to the command line library; eventually the latter grossness should be fixed by a real API when creating the target machine.
...
llvm-svn: 90063
2009-11-29 07:18:39 +00:00
Daniel Dunbar
0317c4c5b7
Add clang -cc1 parsing for LangOptions.
...
- This is the last major parsing piece, main FIXMEs remain.
llvm-svn: 90059
2009-11-29 05:52:21 +00:00
Daniel Dunbar
5fe0866b9d
clang-cc: Change -fsigned-char=0 to -fno-unsigned-char and pass -pic-level using separate args.
...
llvm-svn: 90054
2009-11-29 02:39:08 +00:00
Daniel Dunbar
9eac065e67
Move MainFileName option variable into CodeGenOptions instead of LangOptions.
...
llvm-svn: 90051
2009-11-29 02:38:34 +00:00
Daniel Dunbar
7ab5c491c1
Remove header which is bringing libAST in (on MSVC).
...
llvm-svn: 89946
2009-11-26 09:57:25 +00:00
Daniel Dunbar
5337f0c842
Fix thinko (-fno-builtin != -nobuiltininc).
...
llvm-svn: 89918
2009-11-26 02:14:16 +00:00
Daniel Dunbar
81fe60b787
Add clang -cc1 parsing for preprocessor options.
...
llvm-svn: 89917
2009-11-26 02:14:07 +00:00
Daniel Dunbar
cbc693579c
Add clang -cc1 parsing for header search options.
...
llvm-svn: 89916
2009-11-26 02:13:54 +00:00
Daniel Dunbar
44b36ee78c
What the FIXMEs want, the FIXMEs shall have.
...
llvm-svn: 89861
2009-11-25 11:53:23 +00:00
Daniel Dunbar
b8c2f7d950
Add an arg_iterator, for iterating over a subset of arguments in an ArgList.
...
llvm-svn: 89860
2009-11-25 11:33:30 +00:00
Daniel Dunbar
ad2278d74c
Add clang -cc1 parsing for frontend options.
...
llvm-svn: 89856
2009-11-25 10:14:52 +00:00
Daniel Dunbar
9efcf351bd
Add clang -cc1 parsing for preprocessor output options (-E).
...
llvm-svn: 89854
2009-11-25 10:14:37 +00:00
Daniel Dunbar
5bdd299bfd
Don't pass -fexceptions=0 (it is the default).
...
llvm-svn: 89853
2009-11-25 10:14:30 +00:00
Edward O'Callaghan
c92791193d
Fix for Path::isSpecialFile to Path::isRegularFile API in rev 89765.
...
llvm-svn: 89849
2009-11-25 06:33:27 +00:00
Edward O'Callaghan
db521ec23b
Fix for PR5568.
...
llvm-svn: 89766
2009-11-24 15:23:21 +00:00
Daniel Dunbar
8d731964d0
Sketch the rest of the clang -cc1 option definitions, aka fun with C-x C-(.
...
llvm-svn: 89721
2009-11-24 00:54:16 +00:00
Daniel Dunbar
8a9fa3af69
Add clang -cc1 parsing of diagnostic options.
...
llvm-svn: 89716
2009-11-23 23:41:17 +00:00
Daniel Dunbar
180f1fe4ce
Recognize .hpp as a C++ header.
...
llvm-svn: 89630
2009-11-22 22:08:27 +00:00
Daniel Dunbar
f5835ea2e7
Add clang -cc1 parsing of analyzer options.
...
llvm-svn: 89629
2009-11-22 22:08:20 +00:00
Daniel Dunbar
f4b39e9c95
Fix refacto, gcc's cc1 needs to see --output-pch=, which is not just an alias
...
for -output-pch=.
llvm-svn: 89534
2009-11-21 02:31:29 +00:00
Daniel Dunbar
a764eef0e9
Driver: Add clang -cc1 dependency output options parsing.
...
llvm-svn: 89508
2009-11-20 23:28:07 +00:00
Daniel Dunbar
a604639635
Switch CompilerInvocation::CreateFromArgs to take const char** arguments until Driver itself switches to StringRef.
...
llvm-svn: 89503
2009-11-20 22:47:55 +00:00
Daniel Dunbar
4274685b63
Pass '-mcpu' 'FOO' instead of '-mcpu=FOO'.
...
llvm-svn: 89498
2009-11-20 22:21:52 +00:00
Daniel Dunbar
8bed86c43e
Standardize Driver translation to call clang-cc using '-foo' form instead of '--foo'.
...
llvm-svn: 89497
2009-11-20 22:21:36 +00:00
Daniel Dunbar
69fd86dd44
Add clang -cc1 parsing of CodeGenOptions.
...
llvm-svn: 89464
2009-11-20 17:23:30 +00:00
Daniel Dunbar
f7535121a2
Driver: Add parsing for TargetOptions to CompilerInvocation::CreateFromArgs.
...
llvm-svn: 89435
2009-11-20 01:46:44 +00:00
Daniel Dunbar
84e8a249fa
Fix some default in the option classes, and some CompilerInvocation argification
...
errors.
llvm-svn: 89388
2009-11-19 20:54:59 +00:00
Daniel Dunbar
8c9efca5bd
Driver: Move INPUT and UNKNOWN sentinel options into the OptParser.td file.
...
llvm-svn: 89371
2009-11-19 18:47:17 +00:00
Daniel Dunbar
f57e69c78a
Add missing dependency for CMake.
...
llvm-svn: 89332
2009-11-19 07:37:40 +00:00
Daniel Dunbar
be6ef3874f
Sketch .td file and build system goop for OptTable based clang-cc options.
...
llvm-svn: 89330
2009-11-19 07:19:04 +00:00
Daniel Dunbar
52ed5feee5
Factor out OptTable::ParseArgs, for parsing an entire argument vector.
...
llvm-svn: 89327
2009-11-19 06:35:06 +00:00
Daniel Dunbar
484afa2d3b
Switch -f{builtin,math-errno,rtti} and -analyzer-purge-dead to -...no... variants instead of using llvm: 🆑 :init(true) arguments.
...
llvm-svn: 89315
2009-11-19 04:55:23 +00:00
Daniel Dunbar
da13faf982
Driver: ArgList doesn't depend on Options.h anymore.
...
llvm-svn: 89313
2009-11-19 04:25:22 +00:00
Daniel Dunbar
b323fd72ab
Driver: Take option ID for {Input,Unknown}Option, to drop dependency on actual options.
...
llvm-svn: 89312
2009-11-19 04:25:06 +00:00
Daniel Dunbar
8c00957008
Driver: Introduce OptSpecifier class for protecting access to an option id.
...
llvm-svn: 89310
2009-11-19 04:14:53 +00:00
Daniel Dunbar
fffd18167d
Driver: Switch to using explicit {getLast,has}ArgNoClaim functions instead of taking a Claim argument.
...
- Most driver code always claims, and bool arguments don't play nice with the overloads.
llvm-svn: 89308
2009-11-19 04:00:53 +00:00
Daniel Dunbar
b3b47b8dde
Driver: Resolve inconsistency in matching options against options which are
...
aliases -- just treat this case as an (unchecked) client error.
llvm-svn: 89306
2009-11-19 03:26:50 +00:00
Daniel Dunbar
0bfb21e4b0
Use Option::matches instead of direct ID comparison.
...
llvm-svn: 89305
2009-11-19 03:26:40 +00:00
Daniel Dunbar
46fffee081
Driver: Switch to using TableGen'erated Options.inc instead of Options.def file.
...
llvm-svn: 89288
2009-11-19 01:03:50 +00:00
Daniel Dunbar
aa767378ac
Driver: Split OptTable out into OptTable.{h,cpp}
...
llvm-svn: 89283
2009-11-19 00:15:11 +00:00
Daniel Dunbar
7147de2c4e
Make MSVC happy.
...
llvm-svn: 89247
2009-11-18 21:42:57 +00:00
Daniel Dunbar
26228a0d7a
Driver: Rework OptTable to have no dependency on the options it manages.
...
llvm-svn: 89234
2009-11-18 20:19:36 +00:00
Daniel Dunbar
a76762c9fb
Driver: Make local type name more distinct.
...
llvm-svn: 89233
2009-11-18 20:19:26 +00:00
Daniel Dunbar
f324fa7095
Driver: Store Option ID field as unsigned to drop dependency on the options
...
type.
llvm-svn: 89232
2009-11-18 20:19:19 +00:00
Daniel Dunbar
21432d38a0
Driver: Switch Options.def to storing flags as a bitmask (instead of mangled
...
into a string).
llvm-svn: 89212
2009-11-18 17:42:34 +00:00
Edward O'Callaghan
c14422223b
Fix passing stdc++ correctly in the FreeBSD toolchain support, Credit to Roman Divacky.
...
llvm-svn: 89205
2009-11-18 14:51:31 +00:00
David Chisnall
950a9518b1
Added block type introspection support.
...
As per Fariborz's suggestion, committed now but can be reverted later if the used flag is problematic for Apple.
llvm-svn: 89134
2009-11-17 19:33:30 +00:00
Daniel Dunbar
4930e3357b
Add -fblocks, -stack-protector, and -fobjc-nonfragile-abi defaulting to driver,
...
instead of using getDefaultLangOptions.
- Remove unused -fobjc-tight-layout while at it.
llvm-svn: 89065
2009-11-17 08:07:36 +00:00
Daniel Dunbar
f408303a3f
Add driver::types::isObjC predicate.
...
llvm-svn: 89064
2009-11-17 08:07:16 +00:00
Daniel Dunbar
4656c53e12
Move -fnext-runtime defaulting to driver (and change clang-cc default to
...
-fnext-runtime), instead of using getDefaultLangOptions.
llvm-svn: 89058
2009-11-17 07:07:28 +00:00
Daniel Dunbar
0730e4f7e0
Move -fms-extensions defaulting to driver, instead of using getDefaultLangOptions.
...
llvm-svn: 89057
2009-11-17 07:06:20 +00:00
Daniel Dunbar
d609b7bbe9
Move char-is-signed defaulting to driver, instead of using
...
getDefaultLangOptions.
llvm-svn: 89053
2009-11-17 06:37:03 +00:00
Daniel Dunbar
e13ada6a3b
Add clang -mcpu=native support, patch by Roman Divacky, varioustweaks by me.
...
- We still need support for detecting the target features, since the name
doesn't actually do a good job of decribing what the CPU supports (for LLVM).
llvm-svn: 88819
2009-11-14 22:04:54 +00:00
Edward O'Callaghan
932c32043a
Fix for FreeBSD toolchain in regards to CPP, Credit to Roman Divacky.
...
llvm-svn: 86459
2009-11-08 10:13:36 +00:00
John Thompson
ed4e2950bc
Adding -fshort-wchar option.
...
llvm-svn: 86167
2009-11-05 20:14:16 +00:00
Daniel Dunbar
5ec950218a
Move -fcolor-diagnostics logic to driver.
...
llvm-svn: 86014
2009-11-04 06:24:57 +00:00
Daniel Dunbar
2c9784769a
Move logic for selection -fmessage-length= to driver.
...
llvm-svn: 86013
2009-11-04 06:24:47 +00:00
Daniel Dunbar
1c7577c9bd
Fix indentation.
...
llvm-svn: 86011
2009-11-04 06:24:38 +00:00
Tanya Lattner
f9d41df093
Merge constant array and structures. This will create a global variables for arrays and structs that are constant and their initializer is constant. It is on by default but can be disable with the flag -fno-merge-all-constants.
...
llvm-svn: 85991
2009-11-04 01:18:09 +00:00
Chris Lattner
e9d7d78ab3
Implement support for the -undef command line option, patch by
...
Roman Divacky! PR5363
llvm-svn: 85932
2009-11-03 19:50:27 +00:00
Mike Stump
0a65b636ce
Fix -pthread on dragonfly. Patch by Sascha Wildner.
...
llvm-svn: 85679
2009-10-31 20:11:46 +00:00
Daniel Dunbar
624c21b029
Change the driver to do the Darwin triple mangling itself instead of forwarding
...
-mmacosx-version-min and -miphoneos-version-min to clang-cc.
llvm-svn: 85600
2009-10-30 18:12:20 +00:00
Daniel Dunbar
1a8a2e8e97
Remove some obsolete or unnecessary FIXMEs.
...
llvm-svn: 85475
2009-10-29 02:39:57 +00:00
Daniel Dunbar
945577ce93
PR5328: Allow duplicatic -pedantic (and -pedantic-errors) options.
...
- clang-cc doesn't care about their relative order with other -W options.
llvm-svn: 85473
2009-10-29 02:24:45 +00:00
Daniel Dunbar
b0b18615e2
Kill off MakeFormattedString helper function.
...
llvm-svn: 85472
2009-10-29 02:24:37 +00:00
Daniel Dunbar
38b6279ce4
Reject -I- in driver instead of clang-cc.
...
llvm-svn: 85469
2009-10-29 01:53:44 +00:00
Douglas Gregor
f7b87cb529
[llvm up]
...
Switch a few ugly switch-on-string-literal constructs to use the new
llvm::StringSwitch.
llvm-svn: 85461
2009-10-29 00:41:01 +00:00
Edward O'Callaghan
5c5214626c
Fix for PR4887, Credit to Jonathan Gray.
...
llvm-svn: 85392
2009-10-28 15:13:08 +00:00
Rafael Espindola
b3549d74da
Rename -nostdclanginc to -nobuiltininc.
...
llvm-svn: 85116
2009-10-26 13:36:57 +00:00
Daniel Dunbar
820782aae0
Driver: Fix thinko in logic for finding gcc's tool chain directory.
...
llvm-svn: 84805
2009-10-22 00:12:00 +00:00
Benjamin Kramer
961b4e3edb
Driver: don't produce bogus osx version numbers if no version (aka 0) was specified.
...
llvm-svn: 84781
2009-10-21 21:05:07 +00:00
Daniel Dunbar
f4534ee0a3
Driver: If unable to find the gcc tool chain, try the next OS rev.
...
llvm-svn: 84656
2009-10-20 19:25:43 +00:00
Edward O'Callaghan
f208b55825
AuroraUX toolchain should call GNU assembler not the Solaris assembler.
...
llvm-svn: 84469
2009-10-19 07:02:08 +00:00
Edward O'Callaghan
7d3c275526
dynamic linker arg is incorrectly invoking gnu ld arg syntax instead of svr4 ld syntax in AuroraUX toolchain.
...
llvm-svn: 84266
2009-10-16 19:44:18 +00:00
Nuno Lopes
275225dd05
fix -ansi in c++: it means -std=c++98
...
llvm-svn: 84254
2009-10-16 14:28:06 +00:00
Daniel Dunbar
cbc34b769e
Driver: Default to using PTH for C++ precompiled header support, PCH for C++
...
isn't implemented yet.
- <rdar://problem/7297571> Clang should use pretokenized headers for C++ PCH
files
llvm-svn: 84197
2009-10-15 20:02:44 +00:00
Edward O'Callaghan
d8712d9143
AuroraUX toolchain fixes.
...
llvm-svn: 84176
2009-10-15 07:44:07 +00:00
Edward O'Callaghan
fc460554f6
-funit-at-a-time is the default however some current makefiles pass -fno-unit-at-a-time which is ignored by GCC, we should warn about this not error out.
...
llvm-svn: 83976
2009-10-13 16:41:34 +00:00
Mike Stump
727170d2d8
Allow customization for the version line.
...
llvm-svn: 83652
2009-10-09 17:31:54 +00:00
Douglas Gregor
01249503fe
Installation of Clang libraries and headers, from Axel Naumann!
...
llvm-svn: 83582
2009-10-08 22:15:31 +00:00
Ted Kremenek
7881ac97a5
Revert r83443.
...
llvm-svn: 83451
2009-10-07 03:21:11 +00:00
Mike Stump
db9fca7735
Fixup pathnames.
...
llvm-svn: 83443
2009-10-07 01:11:54 +00:00
Rafael Espindola
7787d79c7b
Add the -nostdclanginc option to clang (the driver).
...
llvm-svn: 83377
2009-10-06 12:45:37 +00:00
Douglas Gregor
1b7035da6f
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.
llvm-svn: 83321
2009-10-05 20:33:49 +00:00
Fariborz Jahanian
e4b21aba44
Set __EXCEPTIONS by checking on darwin's triple.
...
Patch by Rafael Espindola.
llvm-svn: 83209
2009-10-01 20:30:46 +00:00
Rafael Espindola
00a665751d
Move the "needs exception support" logic to clang. This also fixes
...
-fno-exceptions in C++ code. We used to always define __EXCEPTIONS in
C++.
llvm-svn: 83199
2009-10-01 13:33:33 +00:00
Daniel Dunbar
d71a03b164
Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
...
libexec, *blush*.
llvm-svn: 83086
2009-09-29 18:52:10 +00:00
Ted Kremenek
05e6f5b6e9
Turn on 'RegionStore' as the default store manager both for 'clang --analyze' and 'scan-build'. Leave 'BasicStore' as the default store manager in 'clang-cc'. While there are still known warts with RegionStore, it's ready to be tested by general users.
...
llvm-svn: 82752
2009-09-25 05:55:59 +00:00
Daniel Dunbar
5564ba743f
Push "clang-is-production" logic up to tools/driver, and make it hittable by
...
defining the CLANG_IS_PRODUCTION Makefile variable.
llvm-svn: 82583
2009-09-22 22:31:13 +00:00
Daniel Dunbar
6276f99be5
Split Darwin toolchain into Clang and GCC Darwin toolchains with a common base.
...
llvm-svn: 82213
2009-09-18 08:15:13 +00:00
Daniel Dunbar
26d482a1a9
Lift AddLinkRuntimeLibArgs into Darwin tool chain.
...
llvm-svn: 82212
2009-09-18 08:15:03 +00:00
Daniel Dunbar
d5bd81e869
Move isMacosxVersionLT helpers to Darwin tool chain.
...
llvm-svn: 82211
2009-09-18 08:14:55 +00:00
Daniel Dunbar
510d8a8dd8
Lift getMacosxVersionMin out into Darwin ToolChain.
...
llvm-svn: 82210
2009-09-18 08:14:46 +00:00
Daniel Dunbar
4c30b89def
Lift AddLinkerSearchPaths() into Darwin tool chain.
...
llvm-svn: 82209
2009-09-18 08:14:36 +00:00
Daniel Dunbar
48622c13f7
Rename a variable to match its semantics.
...
llvm-svn: 82208
2009-09-18 08:14:24 +00:00
Daniel Dunbar
58f7833cfb
Driver: Change -O to mean -O2, -O1 is meaningless.
...
llvm-svn: 82131
2009-09-17 06:53:36 +00:00
Daniel Dunbar
07806ca7ab
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
llvm-svn: 82120
2009-09-17 04:13:26 +00:00
Daniel Dunbar
d112f103e7
We don't need a -compile-ast clang-cc action, we can just use -S.
...
llvm-svn: 82105
2009-09-17 00:47:53 +00:00
Daniel Dunbar
306945d3d0
Incremental improvement to logic determining whether we emit unwind tables or
...
not.
- PR4932.
llvm-svn: 82021
2009-09-16 06:17:29 +00:00
Daniel Dunbar
4ed7898294
Support -mabi= for clang/ARM.
...
llvm-svn: 81734
2009-09-14 00:34:46 +00:00
Daniel Dunbar
33a004e9eb
Swizzle the target triple based on -mthumb, and update clang-cc to recognize
...
thumb-foo-bar as an ARM target.
llvm-svn: 81497
2009-09-11 01:14:50 +00:00
Daniel Dunbar
7848592ec6
Initial handling of -m{soft-float,hard-float,float-abi=} for ARM.
...
llvm-svn: 81471
2009-09-10 23:00:09 +00:00
Daniel Dunbar
e2cf8f7b53
Move X86 handling of -m[no-]soft-float and -m[no-]red-zone into AddX86TargetArgs.
...
llvm-svn: 81470
2009-09-10 22:59:57 +00:00
Daniel Dunbar
f492c92761
Change getLLVMArchNameForARM to just get the suffix.
...
llvm-svn: 81469
2009-09-10 22:59:51 +00:00
Daniel Dunbar
fb58b0aaa9
Add code to mangle the triple for LLVM on ARM.
...
- I think we should get rid of this distinction though, but I need to discuss with the interested parties.
llvm-svn: 81435
2009-09-10 06:49:20 +00:00
Daniel Dunbar
4fa0811e4c
Don't pass -fno-builtin-str{cat,cpy} to clang-cc, I forget we don't support that yet. PR4941.
...
llvm-svn: 81430
2009-09-10 04:57:27 +00:00
Daniel Dunbar
0f5c542a86
ARM: Pass -mcpu to clang-cc based on -march= and -mcpu=.
...
llvm-svn: 81429
2009-09-10 04:57:17 +00:00
Daniel Dunbar
2ffe029a61
Implement Darwin/ARM behavior for defaulting to -fno-builtin-str{cat,cpy}.
...
llvm-svn: 81425
2009-09-10 03:37:02 +00:00
Daniel Dunbar
4eadb60652
Add a check that -static is not used with -dynamic or -mdynamic-no-pic.
...
llvm-svn: 81421
2009-09-10 01:21:12 +00:00
Daniel Dunbar
64198ef50f
Factor out CheckPreprocessing options to share between Clang/CC1 tools.
...
Also, fix forwarding of -C/-CC to cc1.
llvm-svn: 81420
2009-09-10 01:21:05 +00:00
Daniel Dunbar
3c7b9ca4bf
Improve Darwin argument translation to match what the driver driver does.
...
llvm-svn: 81391
2009-09-09 22:33:15 +00:00
Daniel Dunbar
3b3191f23c
Move Clang X86 cpu/feature argument translation into AddX86TargetArgs.
...
llvm-svn: 81390
2009-09-09 22:33:08 +00:00
Daniel Dunbar
1ce81538f1
Change Get{File,Program}Path to return an std::string (instead of a sys::Path).
...
llvm-svn: 81389
2009-09-09 22:33:00 +00:00
Daniel Dunbar
1c28f1e17c
Remove gratuitous use of c_str().
...
llvm-svn: 81388
2009-09-09 22:32:48 +00:00
Daniel Dunbar
b617a9f3c7
Use Twine concatenation instead of llvm::format.
...
llvm-svn: 81387
2009-09-09 22:32:41 +00:00
Daniel Dunbar
b4a3e43741
Simplify.
...
llvm-svn: 81386
2009-09-09 22:32:34 +00:00
Daniel Dunbar
5f620c1fac
StringRefize ArgList construction of ArgStrings.
...
llvm-svn: 81385
2009-09-09 22:32:26 +00:00
Daniel Dunbar
3571dd90cf
Use AddDarwinArch for passing arch name to assembler.
...
llvm-svn: 81368
2009-09-09 18:36:27 +00:00
Daniel Dunbar
e9ded43d1d
Add DarwinTool base class for all Darwin tools, and move AddDarwin[Sub]Arch there.
...
llvm-svn: 81367
2009-09-09 18:36:20 +00:00
Daniel Dunbar
e7af341454
Push bound architecture name into TranslateArgs.
...
llvm-svn: 81366
2009-09-09 18:36:12 +00:00
Daniel Dunbar
b5d86bbd76
Push bound architecture name into Compilation::getArgsForToolChain.
...
llvm-svn: 81365
2009-09-09 18:36:01 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Daniel Dunbar
faabdc3b81
Change Darwin toolchain lookup to use llvm::Triple.
...
- -2+1 FIXMEs.
llvm-svn: 81282
2009-09-08 23:37:36 +00:00
Daniel Dunbar
9c3f7c4a4b
Validate arguments to -arch.
...
llvm-svn: 81281
2009-09-08 23:37:30 +00:00
Daniel Dunbar
1ef3f2aa3a
Rename HostInfo::getToolChain to HostInfo::CreateToolChain, and don't recreate
...
the default tool chain when binding the default architecture.
llvm-svn: 81279
2009-09-08 23:37:19 +00:00
Daniel Dunbar
b5c741a427
Delete trailing whitespace.
...
llvm-svn: 81278
2009-09-08 23:37:08 +00:00
Daniel Dunbar
7b57404dea
Simplify.
...
llvm-svn: 81277
2009-09-08 23:37:02 +00:00
Daniel Dunbar
953b8d1f15
Fix ShouldUseClangCompiler to use llvm::Triple.
...
- -1 FIXME, and fixes 'clang -arch armv4t ...', for example.
llvm-svn: 81276
2009-09-08 23:36:55 +00:00
Daniel Dunbar
f26a7ab377
Tweak & reflow comments, and delete trailing whitespace.
...
llvm-svn: 81275
2009-09-08 23:36:43 +00:00
Daniel Dunbar
c09988dda5
Remove FIXMEs for pedantically-gcc-bug-compatible behavior.
...
- We aren't going to fix these since they haven't caused problems in practice.
- Similarly, don't forward -object to Darwin ld.
llvm-svn: 81224
2009-09-08 16:39:16 +00:00
Daniel Dunbar
037f389f4d
Merge libgcc spec changes for darwin::Link::ConstructJob.
...
llvm-svn: 81022
2009-09-04 18:35:47 +00:00
Daniel Dunbar
2b5f6817e0
Tweak darwin::Link::AddLinkArgs.
...
llvm-svn: 81021
2009-09-04 18:35:41 +00:00
Daniel Dunbar
91dbfd6666
Implement darwin::Link::AddDarwinArch for ARM.
...
llvm-svn: 81020
2009-09-04 18:35:31 +00:00
Daniel Dunbar
84e727fb72
Darwin: Pass -iphoneos-version-min to ld when building for ARM.
...
llvm-svn: 81019
2009-09-04 18:35:21 +00:00
Daniel Dunbar
5ed07fe794
Add -ccc-install-dir option for faking installation path.
...
llvm-svn: 81017
2009-09-04 18:35:03 +00:00
Daniel Dunbar
f0a5b9b126
Rename Darwin_X86 toolchain to just Darwin, this can support all platforms.
...
llvm-svn: 81016
2009-09-04 18:34:51 +00:00
Daniel Dunbar
5095b293b7
Remove unused argument.
...
llvm-svn: 81010
2009-09-04 17:39:02 +00:00
Daniel Dunbar
a77eaeb1e6
Add basic support for -pthread.
...
- Patch by David Chisnall, with PCH and Darwin support mixed in.
llvm-svn: 80883
2009-09-03 04:54:28 +00:00
Mike Stump
850cc1c5a4
Update.
...
llvm-svn: 80864
2009-09-03 01:30:36 +00:00
Daniel Dunbar
6cdf83c192
Add driver support for -emit-ast and AST compilation steps.
...
- <rdar://problem/7185031> Add 'clang' option '-emit-ast'
llvm-svn: 80678
2009-09-01 16:57:46 +00:00
David Chisnall
5778fce141
Updated GNU runtime non-fragile ABI.
...
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
2009-08-31 16:41:57 +00:00
Daniel Dunbar
a6b4a3d646
PR4766: Don't pass -static to 'as' on x86_64 on Darwin.
...
Also, do pass -static even with -dynamic on i386.
llvm-svn: 79948
2009-08-24 22:26:16 +00:00
Daniel Dunbar
516bb9dd76
Remove arch normalization from Driver, this should be unnecessary now that
...
things have moved to llvm::Triple.
llvm-svn: 79902
2009-08-24 09:16:49 +00:00
Chris Lattner
3441b4f77e
API changes to match llvm ToT.
...
llvm-svn: 79868
2009-08-23 22:45:33 +00:00
Daniel Dunbar
ccc60da5c7
Reenable clang using clang-cc for C++ and all archs by default.
...
llvm-svn: 79861
2009-08-23 19:41:53 +00:00
Daniel Dunbar
b5bcd6b94a
Temporarily switch clang back to not using clang-cc by default for C++, and only
...
using clang-cc on i386 and x86_64.
llvm-svn: 79859
2009-08-23 18:42:54 +00:00
Douglas Gregor
76d8c5725f
Don't install Clang libraries.
...
llvm-svn: 79824
2009-08-23 05:02:18 +00:00
Edward O'Callaghan
856e4ff78d
Second half of, clang, AuroraUX toolchain support.
...
llvm-svn: 79713
2009-08-22 01:06:46 +00:00
Daniel Dunbar
b46b5bbaa8
Add additional library paths for Linux distros on mixed 32/64-bit systems.
...
- Patch by Carl-Daniel Hailfinger.
llvm-svn: 78272
2009-08-06 01:47:11 +00:00
Benjamin Kramer
70231c99c4
Fix -fno-omit-frame-pointer bug Eli noticed.
...
llvm-svn: 78233
2009-08-05 19:47:38 +00:00
Benjamin Kramer
cf4371a689
Translate -mcmodel=X to -code-model X and pass it to clang-cc. Patch by Pawel Worach!
...
llvm-svn: 78190
2009-08-05 14:30:52 +00:00
Benjamin Kramer
72e211a47a
Add support for the -fno-omit-frame-pointer option. Patch by Roman Divacky!
...
llvm-svn: 78188
2009-08-05 12:11:11 +00:00
Daniel Dunbar
a8888ac1cb
Driver/OpenBSD: Improve ld options.
...
- Patch by Jonathan Gray!
llvm-svn: 77935
2009-08-03 01:28:59 +00:00
Mike Stump
183c3d2f59
Add beginnigs of rtti generation, wire up more of -fno-exceptions.
...
llvm-svn: 77751
2009-07-31 23:15:31 +00:00
Ted Kremenek
9c3952c03e
Have 'clang --analyze' run syntactic static analysis security checks.
...
llvm-svn: 76996
2009-07-24 20:03:11 +00:00
Daniel Dunbar
07b749230c
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.
llvm-svn: 76886
2009-07-23 17:48:59 +00:00
Daniel Dunbar
08e41d65a2
driver: Print --version on stdout, to match gcc.
...
- Patch by Jean-Daniel Dupas
llvm-svn: 76632
2009-07-21 20:06:58 +00:00
Eli Friedman
bb0d9a5129
Remove -ftraditional option, which gcc doesn't actually support. Make
...
using -traditional and -traditional-cpp with clang an error because
it's unsupported in clang and causes a significant change in the
semantics of the language.
llvm-svn: 75690
2009-07-14 21:58:17 +00:00
Daniel Dunbar
9ab53d2b17
Explicitly initialize the options array, MinGW's gcc 4.3.5 appears to have a bug
...
in array value-initialization.
llvm-svn: 75518
2009-07-13 21:50:47 +00:00
Douglas Gregor
0086a5a3bb
Introduce the notion of "Relocatable" precompiled headers, which are built
...
with a particular system root directory and can be used with a different
system root directory when the headers it depends on have been installed.
Relocatable precompiled headers rewrite the file names of the headers used
when generating the PCH file into the corresponding file names of the
headers available when using the PCH file.
Addresses <rdar://problem/7001604>.
llvm-svn: 74885
2009-07-07 00:12:59 +00:00
Daniel Dunbar
82ef1abf43
Driver: Mark some Compilation members const.
...
llvm-svn: 74636
2009-07-01 20:30:52 +00:00
Daniel Dunbar
38bfda6ab5
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.
llvm-svn: 74634
2009-07-01 20:03:04 +00:00
Daniel Dunbar
aa246cafaa
Driver: Improve diagnostics for failed commands.
...
- Not all tools give good error messages, and sometimes the tool can fail w/o
any error (for example, when signalled).
- We suppress this message when the failing command is the compiler and it
failed normally (exit code == 1), under the assumption that it gave a good
diagnostic.
For example, for a linker failure we now get:
--
ddunbar@lordcrumb:tmp$ clang a.c b.c
ld: duplicate symbol _x in /var/folders/cl/clrOX6SaG+moCeRKEI4PtU+++TI/-Tmp-/cc-bXYITq.o and /var/folders/cl/clrOX6SaG+moCeRKEI4PtU+++TI/-Tmp-/cc-6uK4jD.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
--
For a compiler crash we get:
--
ddunbar@lordcrumb:tmp$ clang t.i
Assertion failed: (CGT.getTargetData().getTypeAllocSizeInBits(STy) == RL.getSize()), function layoutStructFields, file CodeGenTypes.cpp, line 573.
0 clang-cc 0x0000000100f1f1f1 PrintStackTrace(void*) + 38
... stack trace and virtual stack trace follow ...
clang: error: compiler command failed due to signal 6 (use -v to see invocation)
--
But for a regular compilation failure we get the usual:
--
ddunbar@lordcrumb:tmp$ clang c.c
c.c:1:6: error: invalid token after top level declarator
int x
^
1 diagnostic generated.
--
- No test case, not amenable to non-executable testing. :/
- <rdar://problem/6945613>
llvm-svn: 74629
2009-07-01 19:14:39 +00:00
Daniel Dunbar
126b3a103e
Driver: Add Source argument for Commands to hold the Action which caused a
...
Command to be generated, to support more advanced diagnostics.
- No functionality change.
llvm-svn: 74627
2009-07-01 19:02:28 +00:00
Daniel Dunbar
10de9e6602
OpenBSD support.
...
- Patch by Jonathan Gray!
llvm-svn: 74453
2009-06-29 20:52:51 +00:00
Bill Wendling
d63bbadbef
Add stack protector support to clang. This generates the 'ssp' and 'sspreq'
...
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.
llvm-svn: 74405
2009-06-28 07:36:13 +00:00
Douglas Gregor
e14d93c49e
Fix some TableGen-related dependencies for the Clang CMake build
...
llvm-svn: 73976
2009-06-23 18:15:28 +00:00
Douglas Gregor
e1d15c80a3
Add some missing CMake dependencies
...
llvm-svn: 73700
2009-06-18 15:05:47 +00:00
Daniel Dunbar
10978e414c
Stub out printing of the thread model with -v.
...
- Turns out libstdcxx greps for this in configure.
llvm-svn: 73582
2009-06-16 23:32:58 +00:00
Daniel Dunbar
1b3ec3a000
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.
llvm-svn: 73581
2009-06-16 23:25:22 +00:00
Daniel Dunbar
2d5f363d6d
Fix typo in prev commit.
...
llvm-svn: 73556
2009-06-16 21:46:01 +00:00
Daniel Dunbar
79c459932b
Darwin/Driver: Also look at -arch command line options when finding the default
...
tool chain.
llvm-svn: 73555
2009-06-16 21:39:33 +00:00
Daniel Dunbar
367dbb9760
Forward -C and -CC to clang.
...
- <rdar://problem/6945384> Driver should pass down -C and -CC
llvm-svn: 73087
2009-06-08 21:48:20 +00:00
Daniel Dunbar
db09702e2a
PR4016: Forward -fno-show-source-location to clang.
...
llvm-svn: 73082
2009-06-08 21:13:54 +00:00
Devang Patel
9e24386c65
Set function Attribute::NoImplicitFloat appropriately.
...
llvm-svn: 72961
2009-06-05 22:05:48 +00:00
Eli Friedman
327f0b5593
Add driver support for -fsigned-char/-funsigned-char.
...
llvm-svn: 72930
2009-06-05 07:21:14 +00:00
Torok Edwin
a1581e1a7a
forward -fno-color-diagnostics to clang-cc.
...
llvm-svn: 72856
2009-06-04 07:27:53 +00:00
Eli Friedman
7c54f66058
PR4308: Fix support for -m32/-m64 on Linux.
...
I'll look into cleaning this up a bit as a followup.
llvm-svn: 72794
2009-06-03 18:59:56 +00:00
Daniel Dunbar
877b30f83c
Driver: Support -mllvm; this just forwards options to clang-cc.
...
llvm-svn: 72780
2009-06-03 16:16:27 +00:00
Daniel Dunbar
3acbe4ab58
Fix rare failure of .ver-svn creation, it has a dependency that the output
...
directory exist.
llvm-svn: 72704
2009-06-01 22:15:35 +00:00
Eli Friedman
5d3a16f693
ARM is a legitimate Darwin architecture; don't assert.
...
llvm-svn: 72538
2009-05-28 20:57:06 +00:00
Eli Friedman
5cd659fd32
Fix for PR4140: Add the start of a Linux toolchain (basically, just
...
barely enough to get the given usage of -print-file-name working).
llvm-svn: 72412
2009-05-26 07:52:18 +00:00
Daniel Dunbar
b8fb96905d
Fix use after free, found by Benjamin Kramer.
...
llvm-svn: 72333
2009-05-23 18:55:58 +00:00
Fariborz Jahanian
a4404f21d1
This patch adds support for sender-aware dispatch in Objective-C for the GNU runtime, when
...
compiled with -fobjc-sender-dependent-dispatch. This is used in AOP, COP, implementing object
planes, and a few other things.
Patch by David Chisnall.
llvm-svn: 72275
2009-05-22 20:17:16 +00:00
Daniel Dunbar
adeeb052ad
Don't warn about -funit-at-a-time, and reject -fno-unit-at-a-time.
...
- We could just warn about -fno-unit-at-a-time, but in practice people using it
probably aren't going to get what they want out of clang.
Also, use "clang" specified error for unsupported things instead of driver
unsupported error.
llvm-svn: 72272
2009-05-22 19:02:20 +00:00
Daniel Dunbar
51c7f97bea
(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.
llvm-svn: 72243
2009-05-22 02:53:45 +00:00
Daniel Dunbar
5bbebfe9bc
Don't rely on getArchName() to return a constant string reference.
...
llvm-svn: 72241
2009-05-22 02:21:04 +00:00
Daniel Dunbar
58f345ceb1
Add --analyzer-no-default-checks and --analyzer-output options.
...
llvm-svn: 72238
2009-05-22 00:38:15 +00:00
Daniel Dunbar
13c358d9b8
Remove -fprintf-source-range-info from the Driver (this was renamed)
...
llvm-svn: 72061
2009-05-18 23:01:24 +00:00
Daniel Dunbar
82b22101e6
Reformat a comment
...
llvm-svn: 72046
2009-05-18 21:47:54 +00:00
Daniel Dunbar
8a35ef85d8
Driver: Emit an unsupported error on -iframework.
...
llvm-svn: 71698
2009-05-13 19:05:04 +00:00
Daniel Dunbar
e5ae096bf8
Tweak x86 -mcpu defaults.
...
- Default to yonah on Darwin (to get SSE3).
- Default to Pentium4 (32-bit) and x86-64 (64-bit) on
non-Darwin. Welcome to the 21st century.
llvm-svn: 71069
2009-05-06 04:58:14 +00:00
Daniel Dunbar
4dbaaa6f43
Improve handling of (X86) target features.
...
- This is a WIP...
- This adds -march= handling to the driver, and fixes the defaulting
of -mcpu on Darwin (which was using the wrong test).
Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
-target-feature [+-]name
In clang-cc, communicate with the (clang) target to discover the legal
features of a target, and the features which are enabled based on
-mcpu. This is currently hardcoded just enough to not be a feature
regression, we need to get this information from the backend's
TableGen information somehow.
This is used to construct the full list of features which are being
used, which is in turn used to initialize the predefines.
llvm-svn: 71061
2009-05-06 03:16:41 +00:00
Daniel Dunbar
5e051f9a86
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).
llvm-svn: 71056
2009-05-06 02:12:32 +00:00
Daniel Dunbar
e993ba6fca
Add -fobjc-tight-layout.
...
- This implements gcc style Objective-C interface layout (I
think). Currently it is always off, there is no functionality
change unless this is passed.
For the curious, the deal is that gcc lays out the fields of a
subclass as if they were part of the superclass. That is, the
subclass fields immediately follow the super class fields instead
of being padded to the alignment of the superclass structure.
- Currently gcc uses the tight layout in 32-bit and 64-bit modes, and
llvm-gcc uses it in 32-bit only, for reasons which aren't clear
yet. We probably want to switch to matching gcc, once this makes it
through testing... my hope is that we can also fix llvm-gcc in
order to maintain compatibility between the compilers.
llvm-svn: 70827
2009-05-04 05:16:21 +00:00
Daniel Dunbar
5716d87ed1
Driver: When using the generic gcc tool, pass -m32 or -m64 if we
...
recognize the architecture.
- This is an attempt to force gcc to the write target.
- PR4094.
llvm-svn: 70647
2009-05-02 21:41:52 +00:00
Daniel Dunbar
e3e263fb71
Driver: Generate an error when trying to pass an LLVM bc input to a
...
non-Darwin linker (sorry Gold + LTO-plugin users).
llvm-svn: 70641
2009-05-02 20:14:53 +00:00
Daniel Dunbar
cc9123424f
DragonFly ToolChain definition for driver.
...
- Patch by Alex Hornung!
llvm-svn: 70635
2009-05-02 18:28:39 +00:00
Douglas Gregor
4818553abd
Implement -fmessage-length=N, which word-wraps diagnostics to N columns.
...
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>.
llvm-svn: 70578
2009-05-01 21:53:04 +00:00
Douglas Gregor
e5f93b1e58
Revert r70424. We don't need it
...
llvm-svn: 70432
2009-04-29 23:06:13 +00:00
Douglas Gregor
424ac21318
Add PCH version to the -v output
...
llvm-svn: 70424
2009-04-29 22:47:43 +00:00
Daniel Dunbar
44e7122151
Make sure to pass the same options to the static analyzer as the
...
compiler.
- Code generation options may still affect the language...
llvm-svn: 70393
2009-04-29 18:32:25 +00:00
Douglas Gregor
272842aa1c
Enable PCH by default
...
llvm-svn: 70339
2009-04-28 22:44:02 +00:00
Daniel Dunbar
fb83baaf76
With -ccc-pch-is-pch, always treat precompiled inputs as PCH,
...
regardless of extension.
- Otherwise we can't expect that just plugging in -ccc-pch-is-pch
will work.
llvm-svn: 70318
2009-04-28 19:38:45 +00:00
Douglas Gregor
7b71e63120
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.
llvm-svn: 70264
2009-04-27 22:23:34 +00:00
Douglas Gregor
060eaf6520
Turn PCH off by default, yet again. I'm happier about it this time, though
...
llvm-svn: 70168
2009-04-26 23:15:05 +00:00
Douglas Gregor
56930a4b81
Trying turning on PCH by default yet again. We might actually a chance at success now
...
llvm-svn: 70164
2009-04-26 22:21:26 +00:00
Douglas Gregor
8bdbf3628f
Turn off PCH by default, again
...
llvm-svn: 70113
2009-04-26 05:09:50 +00:00
Douglas Gregor
5b21e96c56
One more crazy try with PCH-by-default
...
llvm-svn: 70112
2009-04-26 03:59:49 +00:00
Douglas Gregor
58d23997c8
Turn of PCH by default. I got the info I was looking for
...
llvm-svn: 70106
2009-04-26 01:34:47 +00:00
Daniel Dunbar
72a6090dc4
Driver: Add -std-default= option.
...
- 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.
llvm-svn: 70102
2009-04-26 01:10:38 +00:00
Daniel Dunbar
3ba94d8778
Add option for AddAllArgsTranslated to control whether output argument
...
should be joined or separate.
llvm-svn: 70101
2009-04-26 01:07:52 +00:00
Douglas Gregor
06ccf7a463
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
...
llvm-svn: 70099
2009-04-26 00:37:38 +00:00
Douglas Gregor
25d85bcada
Revert my PCH change. I'm happy now
...
llvm-svn: 70018
2009-04-25 07:18:06 +00:00
Douglas Gregor
9e17c07741
Temporarily try to build with PCH by default. Revert this change once
...
we see what trouble it causes.
llvm-svn: 70017
2009-04-25 06:28:32 +00:00
Daniel Dunbar
68f1d8ed0c
Driver: -mkernel disables default use of unwind tables (although I
...
don't yet understand where this is happening in llvm-gcc).
llvm-svn: 70012
2009-04-25 05:49:54 +00:00
Daniel Dunbar
11892e951d
Driver: -mkernel and -fapple-kext imply -mno-red-zone.
...
llvm-svn: 70010
2009-04-25 05:33:23 +00:00
Daniel Dunbar
c1b1b4b2c9
Don't run dsymutil when making a fat executable direct source.
...
- 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.
llvm-svn: 69951
2009-04-24 03:03:52 +00:00
Daniel Dunbar
838cbe19b7
Call ld, not collect2.
...
- <rdar://problem/6517382> [driver] call ld directly
llvm-svn: 69938
2009-04-23 23:17:23 +00:00
Chris Lattner
6968641ac5
rename -fprint-source-range-info -> -fdiagnostics-print-source-range-info.
...
Temporarily accept both of them, I'll rip out the old one after awhile.
llvm-svn: 69662
2009-04-21 05:34:31 +00:00
Daniel Dunbar
712e4dee26
Look at the TMP environment variable as well.
...
llvm-svn: 69638
2009-04-21 00:25:10 +00:00
Daniel Dunbar
c35694da21
Also look at the TEMP environment variable as a place to put temporary
...
files.
llvm-svn: 69622
2009-04-20 20:28:21 +00:00
Daniel Dunbar
ab8ce7cddb
If defined, use TMPDIR environment variable as location for temporary files.
...
llvm-svn: 69609
2009-04-20 17:32:49 +00:00
Daniel Dunbar
f5e9b1f5d0
Forward f[no-]dollars-in-identifiers to clang, when specified.
...
llvm-svn: 69549
2009-04-19 21:20:32 +00:00
Daniel Dunbar
8281bdeb4d
Forward -fno-diagnostics-fixit-info to clang-cc.
...
llvm-svn: 69546
2009-04-19 21:09:34 +00:00
Douglas Gregor
111af7d7b4
Preliminary PCH support in the driver
...
llvm-svn: 69410
2009-04-18 00:34:01 +00:00
Fariborz Jahanian
493d4e080d
Added -print-ivar-layout option. No change in functionality
...
yet.
llvm-svn: 69346
2009-04-17 03:04:15 +00:00
Daniel Dunbar
f2df7c283f
Driver: Allow using clang as a precompiler, even if it is an
...
unsupported arch.
llvm-svn: 69322
2009-04-16 23:10:13 +00:00
Daniel Dunbar
092f0ccd9c
Pass -fdiagnostics-show-option to clang-cc by default.
...
- <rdar://problem/6796848> implement -fdiagnostics-show-option
llvm-svn: 69276
2009-04-16 06:32:38 +00:00
Daniel Dunbar
b4b3709c5b
Driver: Forward -W* to clang, it can handle all these itself now.
...
Remove clang_W_Group and clang_ignored_W_Group.
llvm-svn: 69261
2009-04-16 03:44:10 +00:00
Daniel Dunbar
a7b5e219bb
Driver: Add --help-hidden
...
llvm-svn: 69171
2009-04-15 16:34:29 +00:00
Daniel Dunbar
2edd923c90
Driver: For clang, accept -fsigned-bitfields and reject
...
-funsigned-bitfields for now (clang defaults to -fsigned-bitfields).
- <rdar://problem/6790309> ER: Support
-fsigned-bitfields/-funsigned-bitfields
llvm-svn: 69131
2009-04-15 02:37:43 +00:00
Chris Lattner
cac63f359e
Implement support for GCC's -dD mode, which dumps -E output *and*
...
macro definitions.
llvm-svn: 68884
2009-04-12 01:56:53 +00:00
Daniel Dunbar
b5023e90f4
Honor MACOSX_DEPLOYMENT_TARGET environment variable.
...
llvm-svn: 68822
2009-04-10 21:00:07 +00:00
Daniel Dunbar
c8b7af89ce
Driver: Forward -miphoneos-version-min to clang.
...
llvm-svn: 68816
2009-04-10 20:11:50 +00:00
Daniel Dunbar
8b723e299c
Driver: CCC_ADD_ARGS could end up using dangling pointers.
...
llvm-svn: 68805
2009-04-10 18:32:59 +00:00
Daniel Dunbar
d067f7fbef
Driver: Split out CPP specific options for clang so that we don't end
...
up adding them twice when running with -no-integrated-cpp or
-save-temps.
- <rdar://problem/6766636> -save-temps falls over with prefix headers
llvm-svn: 68660
2009-04-08 23:54:23 +00:00
Daniel Dunbar
17ddaa677e
More fixes to builtin preprocessor defines.
...
- 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.
llvm-svn: 68621
2009-04-08 18:03:55 +00:00
Daniel Dunbar
ad0f62b203
Darwin ld: Unconditionally add -lstdc++ if we are pretending to be
...
g++.
llvm-svn: 68601
2009-04-08 06:06:21 +00:00
Daniel Dunbar
3b358a3d83
Make debug info work when using -save-temps.
...
- 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...
llvm-svn: 68595
2009-04-08 05:11:16 +00:00
Daniel Dunbar
ab7b2f5623
Set __PIC__ (more) correctly.
...
- 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).
llvm-svn: 68584
2009-04-08 03:03:23 +00:00
Daniel Dunbar
d4510f2223
Driver: Fix forwarding of -fpascal-strings.
...
llvm-svn: 68570
2009-04-07 23:51:44 +00:00
Daniel Dunbar
c44b4ccca8
Driver: Fix forwarding of -{std,ansi,trigraphs} when there are
...
multiple instances of an option.
Also, removed direct -ansi support from clang-cc.
llvm-svn: 68558
2009-04-07 22:13:21 +00:00
Daniel Dunbar
3a148f2625
Driver: Forward remaining -f options to clang manually.
...
- Groups are really just intended to hold inherent structure of the
options, not be abused for individual tool argument translation.
llvm-svn: 68554
2009-04-07 21:51:40 +00:00
Daniel Dunbar
9dc82a2632
Driver: Only forward last instance of -mmacosx-version-min= and
...
-isysroot to clang.
- Don't forward arbitrary -i* options to clang, just the ones we know
about.
llvm-svn: 68553
2009-04-07 21:42:00 +00:00
Daniel Dunbar
d18049ab1d
Driver: Manually translate a number of -f with no- variants options to
...
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.
llvm-svn: 68550
2009-04-07 21:16:11 +00:00
Daniel Dunbar
30bf11e181
Driver: Add default for ArgList::hasFlag and simplify implementation.
...
llvm-svn: 68549
2009-04-07 21:08:57 +00:00
Daniel Dunbar
513d500fda
Driver: Explicitly warn that -pg isn't supported (even though we
...
aren't failing the compilation).
llvm-svn: 68540
2009-04-07 19:18:24 +00:00
Daniel Dunbar
a3cfbe33da
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
llvm-svn: 68535
2009-04-07 19:04:18 +00:00
Daniel Dunbar
b2a7c062aa
Driver: Fix a parsing bug where some options were matched
...
incorrectly. I'm blanking on the smartest way to write this search,
but we should just do the right thing when we move to TableGen.
- <rdar://problem/6761194> [driver] -Wextra-tokens isn't parsed
correctly
llvm-svn: 68525
2009-04-07 18:21:47 +00:00
Daniel Dunbar
c790b09b81
Driver: More verbosity reduction.
...
- 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
llvm-svn: 68487
2009-04-07 02:59:27 +00:00
Daniel Dunbar
a9bbcfa130
Driver: Handle -dumpversion, this is used by some configuration
...
scripts.
llvm-svn: 68418
2009-04-04 05:17:38 +00:00
Daniel Dunbar
f89733cfb8
Driver: Handle properly calling dsymutil when source input is
...
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.
llvm-svn: 68417
2009-04-04 00:55:30 +00:00
Daniel Dunbar
90dd6f45cc
Driver: Automatically suppress warnings for duplicate versions of
...
flags which were used for something.
llvm-svn: 68416
2009-04-04 00:52:26 +00:00
Daniel Dunbar
f69985511d
Driver: Add -Qunused-arguments option to suppress driver "unused
...
arguments" warning.
llvm-svn: 68410
2009-04-03 22:09:23 +00:00
Daniel Dunbar
c2a7189048
Driver: Explicitly ignore -fpch-preprocess when using clang, we don't
...
need to do anything special to support this.
llvm-svn: 68403
2009-04-03 20:51:31 +00:00
Daniel Dunbar
6a8803a34f
Driver: Add missed translation for darwin::Preprocess (gcc), -d*
...
wasn't being forwarded.
llvm-svn: 68365
2009-04-03 01:27:06 +00:00
Ed Schouten
e33194b9d5
Add some whitespace to test my commit privileges.
...
Approved by: ddunbar
llvm-svn: 68343
2009-04-02 19:13:12 +00:00
Daniel Dunbar
b48a4aaec9
Driver: Tweak search paths for FreeBSD.
...
- Patch by Pawel Worach!
llvm-svn: 68332
2009-04-02 18:30:04 +00:00
Daniel Dunbar
b0006ae76d
Wire --version to normal -v version text.
...
llvm-svn: 68316
2009-04-02 15:05:41 +00:00
Daniel Dunbar
7803c9546b
Driver: Allow -ccc-gcc-name to specify the name/path to use when
...
calling gcc in generic configurations.
llvm-svn: 68260
2009-04-01 23:34:41 +00:00
Daniel Dunbar
0a05d93ed6
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.
llvm-svn: 68241
2009-04-01 20:33:11 +00:00
Daniel Dunbar
d854c8d8a6
Driver: Add freebsd::Link
...
- Patch by Ed Schouten!
llvm-svn: 68233
2009-04-01 19:36:32 +00:00
Daniel Dunbar
2ec6e8e2ba
Remove a FIXME, use -emit-pth to drive PTH generation.
...
- c.f. r68164
llvm-svn: 68184
2009-04-01 03:28:10 +00:00
Daniel Dunbar
ae8bca038d
Tweak/cleanup darwin::Link a bit, add several FIXMES, and improve test
...
case.
llvm-svn: 68182
2009-04-01 03:17:40 +00:00
Daniel Dunbar
5c9c118600
Tweak darwin::Assemble and add a FIXME.
...
llvm-svn: 68165
2009-04-01 00:27:44 +00:00
Daniel Dunbar
7c92528530
Driver: Implement basic --help text.
...
- PR3875.
- <rdar://problem/6615249> [driver] ccc should support some form of
--help
llvm-svn: 68148
2009-03-31 21:38:17 +00:00
Daniel Dunbar
77684ead4b
Driver: Add OptTable::getOptionKind.
...
Also, removed default value for getOptionMetaVar.
llvm-svn: 68146
2009-03-31 21:26:12 +00:00
Daniel Dunbar
e521a8994c
Driver: Forward -Wp, and -Xpreprocessor arguments to clang when using
...
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.
llvm-svn: 68144
2009-03-31 20:53:55 +00:00
Daniel Dunbar
a207254f94
Driver: Add extra parameters for help text to option definitions.
...
- Currently unused.
And yes, now may be about the time I want a TableGen backend.
llvm-svn: 68139
2009-03-31 20:12:05 +00:00
Daniel Dunbar
8eb473c477
Driver: Call 'as' directly on FreeBSD.
...
- Patch by Ed Schouten!
llvm-svn: 68121
2009-03-31 17:45:15 +00:00
Daniel Dunbar
d640be24fd
(LLVM up) Update to use llvm::sys::getHostTriple().
...
- Always pass -triple to clang-cc (-arch will be removed).
- clang-cc doesn't play guess work with the target triple anymore.
llvm-svn: 68119
2009-03-31 17:35:15 +00:00
Daniel Dunbar
cbe5b2f800
Comment fix.
...
llvm-svn: 68069
2009-03-30 22:11:38 +00:00
Daniel Dunbar
e24297c6b5
Driver: Sketch FreeBSD tool chain.
...
- Patch by Ed Schouten!
llvm-svn: 68061
2009-03-30 21:06:03 +00:00
Daniel Dunbar
13357aef14
Driver: Unbreak ArgList::hasFlag.
...
- <rdar://problem/6726511> [driver] clang does not have -msoft-float
hooked up.
llvm-svn: 68044
2009-03-30 18:13:26 +00:00
Daniel Dunbar
759b1c9b80
Fix -MD with no -MT when -o is specified (and fix test case).
...
llvm-svn: 68042
2009-03-30 17:59:58 +00:00
Daniel Dunbar
d67a32252c
Driver: Support -M and -MM.
...
- Not particularly elegant, but my hand is forced by gcc.
Also, tweak -ccc-print-bindings output.
llvm-svn: 68027
2009-03-30 06:36:42 +00:00
Daniel Dunbar
52e96cc932
Improve dependency file support.
...
- 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.
llvm-svn: 68022
2009-03-30 00:34:04 +00:00
Daniel Dunbar
53b406f40a
Driver: Track which original arguments an arg is derived from, so that
...
we can properly claim arguments, even if they have been translated by
the tool chain.
llvm-svn: 68020
2009-03-29 22:29:05 +00:00
Daniel Dunbar
f64f5307dc
Driver: Add test case for darwin::Preprocess and darwin::Compile
...
tools, and enable them.
llvm-svn: 68019
2009-03-29 22:27:40 +00:00
Daniel Dunbar
58399aecc1
Driver: Make sure to claim -### before emitting "unused argument"
...
warnings.
llvm-svn: 68018
2009-03-29 22:24:54 +00:00
Daniel Dunbar
afec1f58e9
Driver: Finish porting Darwin::Preprocess and Compile port (still
...
unused, and lacking a test case).
- ccc is now on death row, pending some more testing and bug fixes.
llvm-svn: 68012
2009-03-29 18:40:18 +00:00
Daniel Dunbar
e6adeeece3
Driver: Start porting Darwin::Preprocess and Compile implementations
...
(currently unused).
llvm-svn: 68003
2009-03-29 17:08:39 +00:00
Daniel Dunbar
a21c833d74
Driver: Pass -f[no-]pascal-strings on to clang, even if it has been
...
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.
llvm-svn: 67841
2009-03-27 15:22:28 +00:00
Daniel Dunbar
565eefd4ab
Driver: -print-libgcc-file-name was searching wrong path list.
...
llvm-svn: 67837
2009-03-27 14:26:33 +00:00
Mike Stump
db65737b1c
Fix searching for gcc, we only want executable files.
...
llvm-svn: 67806
2009-03-27 00:40:20 +00:00
Mike Stump
ffea82e2f4
Remove dead code.
...
llvm-svn: 67769
2009-03-26 21:25:00 +00:00
Daniel Dunbar
c196421fbc
Driver: Add darwin::Link tool.
...
- <rdar://problem/6717381> [driver] implement ld argument translation
in new driver
llvm-svn: 67760
2009-03-26 16:23:12 +00:00
Daniel Dunbar
dd76524d76
Driver: Fix a number of option definition mismatches (flags instead of
...
separate, or vice versa).
Also, fix initialization of LinkingOutput variable.
llvm-svn: 67757
2009-03-26 16:12:09 +00:00
Daniel Dunbar
b1024880f1
Driver: Print the correct target when printing the version.
...
llvm-svn: 67756
2009-03-26 16:09:13 +00:00
Daniel Dunbar
c7fd57a2f3
Driver: Move GetReleaseVersion to static Driver::GetReleaseVersion method.
...
llvm-svn: 67754
2009-03-26 15:58:36 +00:00
Daniel Dunbar
4e5696b984
Driver: Add ArgList::AddAllArgsTranslated; for forwarding options to
...
tools with the name of the option replace, and arguments rendered
separately.
llvm-svn: 67753
2009-03-26 15:39:22 +00:00
Chris Lattner
ada1c91537
hopefully fix VC++ build error.
...
llvm-svn: 67741
2009-03-26 05:56:24 +00:00
Daniel Dunbar
0af75a19a4
Driver: Implement Darwin_X86 tool chain level argument translation.
...
- This is really gross, but its the easiest way to match gcc. Once we
are confident in the driver, we can try and push these translations
down into tools.
- No test cases for this yet, it's hard to see the effects of these
translations before the gcc tool argument translation is pulled
over.
- Interaction with "unused argument" warning hasn't been worked out
yet.
- <rdar://problem/6717359> [driver] implement toolchain specific
argument translation.
"It's horrible in here."
llvm-svn: 67683
2009-03-25 06:58:31 +00:00
Daniel Dunbar
aabb0b11a3
Driver: Handle -Xarch_, including warning for nasty -Xarch_ use cases
...
we aren't going to support. For example:
clang -Xarch_i386 -S -Xarch_i386 -o -Xarch_i386 myi386asm.s ...
llvm-svn: 67680
2009-03-25 06:12:34 +00:00
Daniel Dunbar
0e378b1e26
Driver: Replace Option::ForwardToGCC by Option::DriverOption (which
...
matches the flag in Options.def).
llvm-svn: 67679
2009-03-25 06:08:46 +00:00
Daniel Dunbar
b2304ee0d1
Driver: Fix typo in JoinedAndSeparateArg::render.
...
llvm-svn: 67677
2009-03-25 05:23:40 +00:00