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
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
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
Rafael Espindola
7787d79c7b
Add the -nostdclanginc option to clang (the driver).
...
llvm-svn: 83377
2009-10-06 12:45:37 +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
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
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
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
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
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
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +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
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
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
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
Edward O'Callaghan
856e4ff78d
Second half of, clang, AuroraUX toolchain support.
...
llvm-svn: 79713
2009-08-22 01:06:46 +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
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
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
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
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
Daniel Dunbar
877b30f83c
Driver: Support -mllvm; this just forwards options to clang-cc.
...
llvm-svn: 72780
2009-06-03 16:16:27 +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
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
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
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