Douglas Gregor
a860e6aebc
Introduce a -cc1-level option to turn off related result type
...
inference, to be used (only) by the Objective-C rewriter.
llvm-svn: 133025
2011-06-14 23:20:43 +00:00
Douglas Gregor
c9224d6714
Eliminate the -f[no]objc-infer-related-result-type flags; there's no
...
reason to allow the user to control these semantics through a flag.
llvm-svn: 132919
2011-06-13 16:42:53 +00:00
Douglas Gregor
33823727c8
Implement Objective-C Related Result Type semantics.
...
Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:
t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
expression of type 'NSArray *' [-Wincompatible-pointer-types]
NSSet *array = [[NSArray alloc] init];
^ ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note:
instance method 'init' is assumed to return an instance of its
receiver
type ('NSArray *')
- (id)init;
^
It also means that we get decent type inference when writing code in
Objective-C++0x:
auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil];
// ^ now infers NSMutableArray* rather than id
llvm-svn: 132868
2011-06-11 01:09:30 +00:00
Chandler Carruth
2561f09c9b
Revert "hack in my new variables for GCC"
...
Very sorry for the accidental commit of WIP code.
llvm-svn: 132745
2011-06-08 10:14:38 +00:00
Chandler Carruth
0169ec0988
hack in my new variables for GCC
...
llvm-svn: 132743
2011-06-08 10:13:14 +00:00
Joerg Sonnenberger
87717773e2
Sort -lgcc after -lgcc_s for NetBSD, otherwise shared libraries on i386
...
may pick it up. This would create bad text relocations.
llvm-svn: 132736
2011-06-07 23:39:17 +00:00
Benjamin Kramer
f90b5de834
Toolchain support for Ubuntu Oneiric. Patch by Michael Wild!
...
llvm-svn: 132669
2011-06-05 16:08:59 +00:00
Roman Divacky
5e300b82e2
Adjust the linker for PowerPC64/-m32 on FreeBSD too.
...
llvm-svn: 132635
2011-06-04 07:40:24 +00:00
Roman Divacky
00859c29bf
Make -m32 work on FreeBSD/PowerPC64.
...
llvm-svn: 132634
2011-06-04 07:37:31 +00:00
Nick Lewycky
97864dac76
On linux, -nostdlib was causing a --start-group with no --end-group to be passed
...
to the linker.
llvm-svn: 132629
2011-06-04 06:27:06 +00:00
Nick Lewycky
62188bbb90
Identifiers with _CapitalLetter are reserved, so don't use them. Prefer the
...
common C++ pattern of using the same name for the constructor argument as you
do for the member. Noticed by inspection.
llvm-svn: 132626
2011-06-04 05:19:42 +00:00
Rafael Espindola
304902141e
We were looking at /usr/lib only if the distro had multilib. This is bogus:
...
we look in /usr/lib to find crt1.o, and that depends only on where libc
is installed.
This fixes the case of using a different gcc installation in a distro
without multilib.
llvm-svn: 132551
2011-06-03 15:39:42 +00:00
Rafael Espindola
d8f92c8dcc
Add support for centos.
...
llvm-svn: 132550
2011-06-03 15:23:24 +00:00
Eric Christopher
55d4989304
80-col cleanup.
...
llvm-svn: 132543
2011-06-03 13:28:31 +00:00
NAKAMURA Takumi
8b73b3e981
Untabify and fix whitespace.
...
llvm-svn: 132531
2011-06-03 03:49:51 +00:00
Rafael Espindola
0ddfbe230f
We already have support for using c++ headers from a custom location.
...
Before this patch we would still link with the system libstdc++. It worked
fine most of the time, but would break if the used headers were a lot newer
than the system libraries.
This patch changes the driver to use the libraries corresponding to the
headers the user selected.
This fixes, for example, using 4.5 headers in a system with gcc 4.1.
llvm-svn: 132497
2011-06-02 22:18:46 +00:00
Eli Friedman
f7600949f4
Add Debian wheezy/sid to ToolChains.cpp. Patch by Michael Wild. PR10064.
...
llvm-svn: 132489
2011-06-02 21:36:53 +00:00
Rafael Espindola
9d4a8cf481
Change how we link libprofile_rt.a. While at it, refactor the code a bit.
...
llvm-svn: 132474
2011-06-02 18:58:46 +00:00
Rafael Espindola
922a624144
Add -fno-gnu89-inline.
...
llvm-svn: 132468
2011-06-02 17:30:53 +00:00
Rafael Espindola
fb2af643e4
Implement -fgnu89-inline. Fixes PR10041.
...
llvm-svn: 132460
2011-06-02 16:13:27 +00:00
Rafael Espindola
341d9b41d4
Add the necessary -L option for finding libprofile_rt.a. It might be a good
...
idea at some point to split out the directories where we install our runtime
libraries.
llvm-svn: 132425
2011-06-01 21:37:00 +00:00
Daniel Dunbar
116b305d31
Driver/Clang: Simplify code to use arch enumerations.
...
llvm-svn: 132338
2011-05-31 15:58:55 +00:00
Argyrios Kyrtzidis
0e37afa15e
A StringRef-ication of the DiagnosticIDs API and internals.
...
Patch by Matthieu Monrocq with tweaks by me to avoid StringRefs in the static
diagnostic data structures, which resulted in a huge global-var-init function.
Depends on llvm commit r132046.
llvm-svn: 132047
2011-05-25 05:05:01 +00:00
Nick Lewycky
82fe5f43d9
When given one of the applicable coverage flags, try to link against
...
libprofile_rt.a. On Darwin, don't try to link -lgcov.
llvm-svn: 132006
2011-05-24 21:54:59 +00:00
Roman Divacky
fcae03245d
Let amd64 be used in target triple instead of x86_64 on FreeBSD.
...
Patch by Dimitry Andric!
llvm-svn: 131990
2011-05-24 19:54:09 +00:00
Jim Grosbach
7c2c664500
For non-Darwin, a plain 'char' type is unsigned.
...
llvm-svn: 131967
2011-05-24 15:40:46 +00:00
Chandler Carruth
e5d9d906cb
Fix a bug in the most recent openSUSE support patch.
...
This patch also by Ismail Donmez.
llvm-svn: 131958
2011-05-24 07:51:17 +00:00
Chris Lattner
d075c82f8c
add opensuse toolchain support, patch by Ismail Donmez!
...
llvm-svn: 131857
2011-05-22 16:45:07 +00:00
Chris Lattner
84e38557e0
Add Redhat Enterprise Linux to the Linux toolchain, PR9769,
...
patch by Bryce Lelbach
llvm-svn: 131840
2011-05-22 05:36:06 +00:00
Douglas Gregor
643c922e66
Introduce the -fdiagnostics-format=xxx option to control how Clang
...
prints the file, line, and column of a diagnostic. We currently
support Clang's normal format, MSVC, and Vi formats.
Note that we no longer change the diagnostic format based on
-fms-extensions.
Patch by Andrew Fish!
llvm-svn: 131794
2011-05-21 17:07:29 +00:00
Joerg Sonnenberger
3028e46e57
Correction for r131662, the GNU as option is --fatal-warnings.
...
llvm-svn: 131671
2011-05-19 20:46:39 +00:00
Joerg Sonnenberger
b487d2d815
Support -fatal-warnings for the assembler frontend
...
llvm-svn: 131662
2011-05-19 18:42:29 +00:00
David Chisnall
b8f65e25d8
- Fixes openSUSE detection for 11.4 and upcoming 12.1
...
- Adds gcc 4.6 to gcc list so that linking will work on openSUSE 12.1
Patch by İsmail Dönmez!
llvm-svn: 131637
2011-05-19 13:26:33 +00:00
Eric Christopher
b29614b357
Add some support for RHEL5 systems.
...
llvm-svn: 131505
2011-05-17 23:06:53 +00:00
Rafael Espindola
35ab91cc89
Fix comment.
...
llvm-svn: 131478
2011-05-17 19:06:58 +00:00
Rafael Espindola
f934f98ad2
The logic about -static is darwin only. For now assume that all non
...
darwin assembler can handle cfi. Add a test.
llvm-svn: 131464
2011-05-17 16:26:17 +00:00
Joerg Sonnenberger
637603a7cc
Make the triple an explicit argument of FindTargetProgramPath.
...
Preserve the original triple in the NetBSD toolchain when using -m32 or
-m64 and the resulting effective target is different from the triple it
started with. This allows -m32 to use the same assembler/linking in
cross-compiling mode and avoids confusion about passing down target
specific flags in that case like --32.
llvm-svn: 131404
2011-05-16 13:35:02 +00:00
Daniel Dunbar
eb86b04595
Driver/Darwin: Put dsymutil -o arguments first, so that dysmutil doesn't barf
...
when POSIXLY_COMPLIANT is set.
- Patch by Dave Vasilevsky!
llvm-svn: 131084
2011-05-09 17:23:16 +00:00
Joerg Sonnenberger
ef317a27ff
Move logic for passing down -mrelax-all / -relax-all into a common
...
function. Extend the logic to check if the input was compiled.
Use -relax-all as default only if -O0 is used for compilation.
Fixes bug 9290.
llvm-svn: 130983
2011-05-06 14:35:16 +00:00
Joerg Sonnenberger
5fe4a7dc96
Rename ContainsCompileAction to ContainsCompileOrAssembleAction to
...
properly reflect its behavior.
llvm-svn: 130981
2011-05-06 14:05:11 +00:00
Nick Lewycky
85c011ddc4
Preserve the full name of the file, so that '-c -o foo.pic.o' produces
...
foo.pic.gcno instead of foo.gcno.
llvm-svn: 130899
2011-05-05 00:08:20 +00:00
Nick Lewycky
480cb9918d
Record where the GCOV data files should be placed.
...
llvm-svn: 130866
2011-05-04 20:46:58 +00:00
Nick Lewycky
36d8f05211
No, fix this use after free properly.
...
llvm-svn: 130833
2011-05-04 03:44:01 +00:00
Nick Lewycky
776586e20d
Fix use after free through StringRef.
...
llvm-svn: 130828
2011-05-04 02:06:19 +00:00
Eric Christopher
d5c45f6738
Add the -mstackrealign option which just communicates the need to
...
force align the stack to the backend.
Fixes rdar://9289631
llvm-svn: 130725
2011-05-02 21:18:22 +00:00
Daniel Dunbar
8438464b41
Driver/Darwin: Honor --sysroot= when invoking the linker, on Darwin.
...
llvm-svn: 130723
2011-05-02 21:03:47 +00:00
Rafael Espindola
4cfa7971e9
Disable CFI if not using the integrated assembler. We should probably do this only for
...
OS X, but it is probably not all that important.
llvm-svn: 130697
2011-05-02 17:43:32 +00:00
Rafael Espindola
e264187cf2
Implement -fno-dwarf2-cfi-asm.
...
llvm-svn: 130616
2011-04-30 18:35:43 +00:00
Daniel Dunbar
2f31fb99ef
Driver/Darwin: Don't link -lgcc_s.1 when compiling as iOS for the simulator,
...
that library has never been in the SDK. Fortunately, it shouldn't be necessary,
since that library was also removed in 10.6.
llvm-svn: 130595
2011-04-30 04:25:16 +00:00
Daniel Dunbar
72ceb92aa3
Driver/Darwin: When using -mios-simulator-version-min, explicitly pass this on
...
to the linker.
- Only do this explicitly with the argument for now, the linker will need to
explicitly add support for this.
llvm-svn: 130594
2011-04-30 04:22:58 +00:00