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
Daniel Dunbar
a9cbb6b9d5
Driver/Darwin: Reject invalid arch combinations with
...
-mios-simulator-version-min.
llvm-svn: 130593
2011-04-30 04:20:40 +00:00
Daniel Dunbar
b1189434dd
Driver/Darwin: Change Darwin toolchain to explicitly track is-ios-sim bit, and
...
update -mios-simulator-version-min to set it.
llvm-svn: 130592
2011-04-30 04:18:16 +00:00
Daniel Dunbar
9aaeb6400b
Driver/Darwin: Sketch initial support for a -mios-simulator-version-min= flag
...
and associated deployment target environment variable.
llvm-svn: 130591
2011-04-30 04:15:58 +00:00
Bob Wilson
9a5f84facb
Add -Oz option and use it to set the inline threshold to 25.
...
Radar 9333566. Patch by Chad Rosier!
llvm-svn: 130554
2011-04-29 22:49:50 +00:00
Daniel Dunbar
252e8f9ac1
Driver/cc1as: Forward -mllvm arguments when compiling assembly files.
...
llvm-svn: 130516
2011-04-29 17:53:18 +00:00
Daniel Dunbar
c44d313cff
Driver/Darwin/ld: Set the deployment target following the version information in
...
the tool chain, instead of based on the translated arguments.
llvm-svn: 130440
2011-04-28 21:23:41 +00:00
Ted Kremenek
414a2c0951
Make the top-level driver ignore -fobjc-default-synthesize-properties while this feature undergoes more review and development. This is still available as a -cc1 option for testing.
...
llvm-svn: 130424
2011-04-28 19:26:03 +00:00
Daniel Dunbar
462e7ed497
Driver: When compilation fails, don't try to remove output files we don't have
...
write access to.
llvm-svn: 130150
2011-04-25 20:43:05 +00:00
Nico Weber
adf8ba98e7
Let clang detect gcc triple on Ubuntu Natty. Patch by Thomas Jablin.
...
llvm-svn: 130119
2011-04-25 03:17:35 +00:00
Chandler Carruth
30483fb188
Move all of the logic for __DEPRECATED to the driver based on comments
...
from dgregor.
llvm-svn: 130066
2011-04-23 19:48:40 +00:00
Chandler Carruth
61fbf62838
Fix Clang's __DEPRECATED define to be controled by -Wdeprecated. This
...
matches GCC behavior which libstdc++ uses to limit #warning-based
messages about deprecation.
The machinery involves threading this through a new '-fdeprecated-macro'
flag for CC1. The flag defaults to "on", similarly to -Wdeprecated. We
turn the flag off in the driver when the warning is turned off (modulo
matching some GCC bugs). We record this as a language option, and key
the preprocessor on the option when introducing the define.
A separate flag rather than a '-D' flag allows us to properly represent
the difference between C and C++ builds (only C++ receives the define),
and it allows the specific behavior of following -Wdeprecated without
potentially impacting the set of user-provided macro flags.
llvm-svn: 130055
2011-04-23 09:27:53 +00:00
Chandler Carruth
b009b14971
There were some frustrating problems with the implementation of
...
-Wwrite-strings. First and foremost, once the positive form of the flag
was passed, it could never be disabled by passing -Wno-write-strings.
Also, the diagnostic engine couldn't in turn use -Wwrite-strings to
control diagnostics (as GCC does) because it was essentially hijacked to
drive the language semantics.
Fix this by giving CC1 a clean '-fconst-strings' flag to enable
const-qualified strings in C and ObjC compilations. Corresponding
'-fno-const-strings' is also added. Then the driver is taught to
introduce '-fconst-strings' in the CC1 command when '-Wwrite-strings'
dominates.
This entire flag is basically GCC-bug-compatibility driven, so we also
match GCC's bug where '-w' doesn't actually disable -Wwrite-strings. I'm
open to changing this though as it seems insane.
llvm-svn: 130051
2011-04-23 06:30:43 +00:00
Francois Pichet
1c229c0472
Add -fdelayed-template-parsing option. Using this option all templated function definitions are parsed at the end of the translation unit only if it is required by an actual instantiation. As such all the symbols of the TU are available during name lookup.
...
Using this flag is necessary for compatibility with Microsoft template code.
This also provides some parsing speed improvement.
llvm-svn: 130022
2011-04-22 22:18:13 +00:00
Nick Lewycky
207bce31e1
Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (at
...
compile time) and .gcda emission (at runtime). --coverage enables both.
This does not yet add the profile_rt library to the link step if -fprofile-arcs
is enabled when linking.
llvm-svn: 129956
2011-04-21 23:44:07 +00:00
Nick Lewycky
ab18d3088a
Fix indentation. No functional change.
...
llvm-svn: 129954
2011-04-21 23:37:32 +00:00
Daniel Dunbar
bbd482226e
Driver/Darwin: Allow OS X deployment targets like 10.4.11, even though they
...
can't be represented in the environment define.
llvm-svn: 129939
2011-04-21 21:27:33 +00:00
Daniel Dunbar
5a784c8ed1
Driver: Tweak -Xarch diags a bit more, we can't actually differentiate between
...
unknown and "required more arguments", but only the latter should be feasible in
practice.
llvm-svn: 129919
2011-04-21 17:41:34 +00:00
Daniel Dunbar
6914a98ccd
Driver: Improve -Xarch argument diagnostics a bit.
...
llvm-svn: 129918
2011-04-21 17:32:21 +00:00
Daniel Dunbar
2db3e73c38
Driver: Suppress some additional warnings with -Qunused-arguments.
...
llvm-svn: 129853
2011-04-20 15:44:48 +00:00
Daniel Dunbar
308cfd045f
Driver/Darwin: Switch to using -macosx for OS name in triples.
...
llvm-svn: 129834
2011-04-19 23:34:17 +00:00
Daniel Dunbar
5c56828d91
Driver/Darwin: Switch to using new style triples.
...
llvm-svn: 129824
2011-04-19 21:45:47 +00:00
Daniel Dunbar
d107638328
Driver/Darwin: Change to use generic iOS runtime library, which we now always need.
...
llvm-svn: 129734
2011-04-18 23:48:36 +00:00
Daniel Dunbar
ed904c82b1
Driver/Darwin: Disable movw/movt with -mkernel or -fapple-kext.
...
llvm-svn: 129721
2011-04-18 21:26:42 +00:00
Daniel Dunbar
10d0868efb
Driver: Support -fno-lto.
...
llvm-svn: 129712
2011-04-18 19:44:09 +00:00
Ted Kremenek
00abe8ee31
Add ToolChain path support for linker on Slackware.
...
llvm-svn: 129704
2011-04-18 17:50:19 +00:00
Douglas Gregor
46ce91a964
Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq
...
llvm-svn: 129614
2011-04-15 22:04:17 +00:00
Chris Lattner
57540c5be0
fix a bunch of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129559
2011-04-15 05:22:18 +00:00
Daniel Dunbar
dc8355e81a
Driver/no-integrated-as: Fix forwarding of -g flag to assembler, when .s input
...
undergoes preprocessing.
llvm-svn: 129414
2011-04-12 23:59:20 +00:00
Chris Lattner
20b90d061a
fix the path to ld.so for darwin/ppc, resolving PR9677. Patch
...
by Jeremy Huddleston!
llvm-svn: 129299
2011-04-11 21:15:37 +00:00
Dylan Noblesmith
70e73a3d60
refactor -ccc-gcc-name code
...
Put the logic for deciding the default name for gcc/g++
in the only place that actually cares about it.
This also pushes an ifdef out of the generic driver code
to a little further down, when the target is actually known.
Hopefully it can be changed into just a runtime check
in the future.
llvm-svn: 129212
2011-04-09 13:31:59 +00:00
Evan Cheng
04c9429f34
Rename -mtrap_function= to -ftrap_function= since it's now a target neutral options.
...
llvm-svn: 129153
2011-04-08 21:37:45 +00:00
Evan Cheng
77cdce9458
Add -mtrap_function=<> option. rdar://9257465
...
llvm-svn: 129145
2011-04-08 18:47:41 +00:00
Chris Lattner
9242b33de7
fix a typo, patch by PaX team.
...
llvm-svn: 129141
2011-04-08 18:06:54 +00:00
Daniel Dunbar
f28c2ffb84
Driver: Don't attempt to forward some Clang-only options to cc1.
...
llvm-svn: 129108
2011-04-07 20:41:03 +00:00
Daniel Dunbar
529c03bc1e
Driver: Sketch driver support for a CC_LOG_DIAGNOSTICS options, similar to the
...
existing CC_PRINT_OPTIONS and CC_PRINT_HEADERS, which can be used to
transparently capture the compiler diagnostics from a build.
llvm-svn: 129082
2011-04-07 18:01:20 +00:00
Eric Christopher
534b6a01e8
Add support for Fedora16, gcc 4.6.0 and Fedora Rawhide.
...
Patch by Bobby Powers
llvm-svn: 129014
2011-04-06 18:22:53 +00:00
Ted Kremenek
43d47cc397
Add ToolChain support to get Clang to recognize Ubuntu/ppc and Gentoo/ppc64.
...
llvm-svn: 128944
2011-04-05 22:04:27 +00:00
Argyrios Kyrtzidis
5cf423ec8a
Move Driver::createInvocationFromArgs function to Frontend library to avoid dependency cycle
...
between libFrontend and libDriver.
llvm-svn: 128852
2011-04-04 23:11:45 +00:00
Argyrios Kyrtzidis
f606b82e9a
Introduce Driver::createInvocationFromArgs used to create a CompilerInvocation from command-line args.
...
llvm-svn: 128848
2011-04-04 21:38:51 +00:00
Daniel Dunbar
16d970950f
Driver/Darwin: Tweak simulator link logic a bit more to be closer to GCC.
...
llvm-svn: 128738
2011-04-01 21:02:42 +00:00
Daniel Dunbar
ebc34dff18
Driver/Darwin: Tweak link logic for simulator.
...
llvm-svn: 128641
2011-03-31 17:12:33 +00:00
Daniel Dunbar
67919b2a5b
Integrated-As: Support -Wa,-L when using the integrated assembler.
...
llvm-svn: 128433
2011-03-28 22:49:28 +00:00
Chandler Carruth
b6766f07c8
Add an option to suppress include stack printing on note diagnostics.
...
These stacks are often less important than those on primary diagnostics.
As the number of notes grows, this becomes increasingly important. The
include stack printing is clever and doesn't print stacks for adjacent
diagnostics from the same file, but when a note is in between a sequence
of errors in a header file, and the notes all refer to some other file,
we end up getting a worst-case ping-pong of include stacks that take up
a great deal of vertical space.
Still, for now, the default behavior isn't changed. We can evaluate user
feedback with the flag.
Patch by Richard Trieu, a couple of style tweaks from me.
llvm-svn: 128371
2011-03-27 01:50:55 +00:00
Chandler Carruth
6e50103acd
Add -f[no-]strict-overflow to the Clang driver. Use it to set the
...
default for -fwrapv if that flag isn't specified explicitly. We always
prefer an explict setting of -fwrapv when present. Also adds support for
-fno-wrapv to allow disabling -fwrapv even when -fno-strict-overflow is
passed.
llvm-svn: 128353
2011-03-27 00:04:55 +00:00
Daniel Dunbar
67fea71c2d
Driver/Darwin: Dsymutil actions should put the dSYM adjacent to the output file.
...
llvm-svn: 128292
2011-03-25 18:16:51 +00:00
Ted Kremenek
49c79790de
Rework checker "packages" and groups to be more hierarchical.
...
llvm-svn: 128187
2011-03-24 00:28:47 +00:00
Chris Lattner
ce6c42f65f
switch a few Driver APIs to use llvm::ArrayRef, cleaning up code.
...
llvm-svn: 128142
2011-03-23 04:04:01 +00:00
Daniel Dunbar
12100e2c7f
Frontend: Add a more explicit -backend-option flag for passing backend command
...
line options, instead of leveraging the blanket -mllvm option.
- This allows using the frontend itself without requiring the backend have
those options available (i.e., if the target wasn't built).
llvm-svn: 128087
2011-03-22 16:48:17 +00:00
Bob Wilson
d9249414b3
Add clang support for cortex-m0 cpus. Patch by James Orr.
...
llvm-svn: 128018
2011-03-21 20:40:05 +00:00
Joerg Sonnenberger
fcc3ec90a5
Introduce FindTargetProgramPath to check for a target-specific helper
...
program and fallback to plain version otherwise. Use this for the NetBSD
target to make it try e.g. i486--netbsdelf-as and -ld for target
i486--netbsdelf.
llvm-svn: 127996
2011-03-21 14:01:40 +00:00
Joerg Sonnenberger
bc923f3f7d
Memorize presence/absence of -nostdlib in Driver.
...
Drop program paths on NetBSD (unused). Only include lib dir, if
-nostdlib is absent. Use = to allow --sysroot to work.
llvm-svn: 127995
2011-03-21 13:59:26 +00:00
Joerg Sonnenberger
6165ab1132
Remember sysroot in Driver. Pass it down to ld for NetBSD, FreeBSD
...
and DragonFly. Use the --sysroot= form for Linux. Fix handling of =
prefix for -B.
llvm-svn: 127994
2011-03-21 13:51:29 +00:00
Daniel Dunbar
8c3d735118
Driver: Forward -traditional and -traditional-cpp in preprocessing modes.
...
- We don't really support the majority of the horrible -traditional-cpp
behavior, but it is unlikely that we ever will either. This allows us to
start trying to use clang as a /usr/bin/cpp replacement and see what pieces
of -traditional-cpp mode people actually care about.
llvm-svn: 127911
2011-03-18 21:23:40 +00:00
Daniel Dunbar
151a372113
Driver/Darwin: Transparently fallback when compiling i386 -fapple-kext code, we
...
don't support the ABI yet.
llvm-svn: 127903
2011-03-18 20:14:03 +00:00
Daniel Dunbar
1e1c3ca51c
Driver: Give SelectTool access to the action inputs.
...
llvm-svn: 127902
2011-03-18 20:14:00 +00:00
Daniel Dunbar
c76a9e6962
Driver/Darwin: Change fallback to use llvm-gcc search paths instead of GCC.
...
llvm-svn: 127897
2011-03-18 19:25:15 +00:00
Daniel Dunbar
50fab351d7
Driver/Darwin: Kill the DarwinGCC toolchain.
...
llvm-svn: 127896
2011-03-18 19:25:10 +00:00
Rafael Espindola
6b314b3d94
On !Darwin, do use the integrated as with -static.
...
llvm-svn: 127879
2011-03-18 15:50:12 +00:00
John McCall
7ef5cb3038
The Darwin kernel does not provide useful guard variable support.
...
Issue this as an IR-gen error; it's not really worthwhile doing this
"right", i.e. in Sema, because IR gen knows a lot of tricks beyond
what the constant evaluator knows.
llvm-svn: 127854
2011-03-18 02:56:14 +00:00
Daniel Dunbar
c44f8cf7b8
Driver/Obj-C: Be compatible with GCC behavior in that -fno-exceptions *does not*
...
disable Obj-C exceptions.
llvm-svn: 127836
2011-03-17 23:28:31 +00:00
Daniel Dunbar
033a4bc49e
Driver/Darwin: These are command line options, not target features.
...
llvm-svn: 127820
2011-03-17 18:29:04 +00:00
Daniel Dunbar
1d733e2d7e
Driver/Darwin: Suppress spurious warning about -force_cpusubtype_ALL.
...
llvm-svn: 127819
2011-03-17 17:37:29 +00:00
Daniel Dunbar
c9388c11f1
Driver/Darwin/ARM: Kernel/kext code has more strict alignment requirements.
...
llvm-svn: 127815
2011-03-17 17:10:06 +00:00
Daniel Dunbar
b1db4b69cc
Driver/ARM: Match GCC behavior in that -msoft-float disables NEON, despite this
...
not being consistent at all with other parts of the GCC implementation.
llvm-svn: 127777
2011-03-17 00:07:34 +00:00
Joerg Sonnenberger
bdbdf70334
Use C as fallback type if in C preprocessor mode.
...
llvm-svn: 127769
2011-03-16 22:45:02 +00:00
Douglas Gregor
0a36f4d654
Support Ubuntu hardy and intrepid, from Thomas Gamper!
...
llvm-svn: 127583
2011-03-14 15:39:50 +00:00
Ted Kremenek
a4a57c10da
Re-enable the IdempotentOperations checker for --analyze, and put it and the DeadStores checker into the "deadcode" group.
...
llvm-svn: 127531
2011-03-12 06:14:28 +00:00
Joerg Sonnenberger
f496164ceb
Redo part of r127137:
...
Pass down the correct C->getArgs, but keep it with the original
DerivedArgList type. Slightly adjust the MakeIndex call for the
different base type. This unbreaks the handling of --no-mangle on Darwin.
llvm-svn: 127142
2011-03-07 01:15:29 +00:00
Joerg Sonnenberger
9c8ad5fe02
Explicitly initialize CCCIsCPP
...
llvm-svn: 127139
2011-03-07 00:09:32 +00:00
Joerg Sonnenberger
b86f5f4106
If called as *cpp or *cpp-[^-]*, run only the preprocessor. If no
...
input is specified, use stdin implicitly. Based on a patch from
Roman Divacky.
llvm-svn: 127137
2011-03-06 23:31:01 +00:00
Douglas Gregor
d9bb152821
Fix driver for thumb-capable ARM hosts, from Mikko Lehtonen!
...
llvm-svn: 127128
2011-03-06 19:11:49 +00:00
Anton Korobeynikov
a9ff8576fb
Normalize target triple passed out of driver. Basically this means
...
that at cc1 level we will always have normalized triple and thus can
provide necessary default based on e.g. environment value (e.g. for
"arm-eabi" triple, etc.)
llvm-svn: 127087
2011-03-05 16:05:17 +00:00
Daniel Dunbar
908b48565d
build: Allow disabling movt/movw from build, for testing purposes.
...
llvm-svn: 126810
2011-03-02 00:55:57 +00:00
Benjamin Kramer
51477bd0d0
Since getDriver().getInstalledDir() returns a const char *, don't try to
...
compare it with getDriver().Dir.c_str(), since that is a pointer
comparison, not a "are these strings equal" comparison.
Instead, just compare with getDriver().Dir directly, so both sides will
get promoted to std::string, and the regular std::string comparison
operator applies.
Patch by Dimitry Andric!
llvm-svn: 126791
2011-03-01 22:50:47 +00:00
Daniel Dunbar
733b0f87df
Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.
...
llvm-svn: 126767
2011-03-01 18:49:30 +00:00
Roman Divacky
432f10df68
The default CPU on FreeBSD for i386 should be i486, not pentium4.
...
Patch by Dimitry Andric!
llvm-svn: 126763
2011-03-01 18:11:37 +00:00
Roman Divacky
2e5065d889
On FreeBSD, we don't want 'getDriver().Dir + "/../lib"' added to the
...
ToolChain's FilePaths. If clang is installed as a port in /usr/local,
it is *not* supposed to use /usr/local/lib by default, for example.
Additionally, there are no clang-related executables in either
/usr/libexec, or getDriver().Dir + "/../libexec", anymore, so remove
that from the ToolChain's ProgramPaths.
Patch by Dimitry Andric!
llvm-svn: 126760
2011-03-01 18:03:28 +00:00
Roman Divacky
ee8188a23b
For linking on FreeBSD, don't add a hardcoded "-L/usr/lib", but
...
retrieve the library paths from the ToolChain object instead.
Copy the relevant code from linuxtools::Link::ConstructJob(), and
replace the std::string stuff with llvm::StringRef, while we're here.
Patch by Dimitry Andric!
llvm-svn: 126757
2011-03-01 17:53:14 +00:00
Roman Divacky
65b88cdb3b
Implement -mrtd which sets the StdCall calling convention to be the default
...
one.
llvm-svn: 126756
2011-03-01 17:40:53 +00:00
Rafael Espindola
d95a81293b
Disable more warnings so that it is safe to use
...
CC="clang -use-gold-plugin -emit-llvm"
CXX="clang++ -use-gold-plugin -emit-llvm"
llvm-svn: 126740
2011-03-01 05:25:27 +00:00
Rafael Espindola
22f60303f2
Don't warn about "clang -use-gold-plugin -c ...". With this users can say
...
CC="clang -use-gold-plugin" CFLAGS=-emit-llvm ../configure...
and not be hit with a warning for each .c file.
llvm-svn: 126713
2011-02-28 23:29:45 +00:00
Argyrios Kyrtzidis
9eb02dfa89
[analyzer] Remove '-analyzer-check-objc-mem' flag, the nominee for best misnomer award.
...
llvm-svn: 126676
2011-02-28 19:49:42 +00:00
David Chisnall
da20991a1b
Make -fobjc-nonfragile-abi and -fgnu-runtime imply -fblocks (unless -fno-blocks is specified), because this combination of flags defines an Objective-C runtime that includes a blocks runtime.
...
llvm-svn: 126654
2011-02-28 17:11:43 +00:00
Chandler Carruth
74f8711802
Fix a tiny goof in the Driver's logic which caused the explicit presence
...
of -fexceptions to disably C++ exceptions. The correct code was in the
ObjC branch, this just mirrors that logic on the C++ side of things.
Thanks to John Wiegley for pointing this out.
llvm-svn: 126640
2011-02-28 07:25:18 +00:00
Anders Carlsson
e96ab55b28
Add a -fcxx-exceptions flag to the frontend, which can be used to enable
...
C++ exceptions, even when exceptions have been turned off using -fno-exceptions.
Make the -fobjc-exceptions flag do the same thing, but for Objective-C exceptions.
C++ and Objective-C exceptions can also be disabled using -fno-cxx-excptions and
-fno-objc-exceptions.
llvm-svn: 126630
2011-02-28 02:27:16 +00:00
Argyrios Kyrtzidis
3e7ab19863
[analyzer] Move the DeadStores checker out of the 'core' package.
...
-Now it gets enabled with '-analyzer-checker=DeadStores'.
-The driver passes the above flag by default.
llvm-svn: 126612
2011-02-28 01:27:12 +00:00
Anders Carlsson
246ff3f19f
Factor code out into a helper function, shouldUseExceptionTablesForObjCExceptions.
...
llvm-svn: 126601
2011-02-28 00:44:51 +00:00
Daniel Dunbar
5480578d83
Driver: Attmpt to fix some possibly UB that MSVC doesn't care for.
...
llvm-svn: 126513
2011-02-25 21:20:15 +00:00
Chandler Carruth
6a4e8e38f2
Add support for ArchLinux, patch by Kevin Winchester.
...
llvm-svn: 126476
2011-02-25 06:39:53 +00:00
Chris Lattner
ba9006df9e
improve support for SUSE Linux Enterprise Server 11 SP1 (x86_64).
...
Patch by Csaba Raduly!
llvm-svn: 126245
2011-02-22 20:47:07 +00:00
Joerg Sonnenberger
fe74286a48
Remove the storage for -cxx-system-include. Make libcxx toolchain
...
use -nostdinc++ and -cxx-isystem.
llvm-svn: 126223
2011-02-22 15:19:35 +00:00
Anders Carlsson
3320e1575f
Make clang -cc1 disable Objective-C exceptions by default, and add a -fobjc-exceptions flag to turn them on.
...
Update all tests accordingly.
llvm-svn: 126177
2011-02-22 01:52:06 +00:00
Chris Lattner
d0257f79bc
Pass the right linker flag in openbsd::Link::ConstructJob,
...
patch by Matthew Dempsky!
llvm-svn: 126133
2011-02-21 18:36:51 +00:00
Anders Carlsson
ce8dd3a5d4
Add a new ObjCExceptions member variable to LangOptions. This controls whether Objective-C exceptions are enabled or not (they are by default).
...
llvm-svn: 126061
2011-02-19 23:53:54 +00:00
Argyrios Kyrtzidis
3b1b3fe039
[analyzer] '-analyzer-check-objc-mem' can go through the llvm/clang codebase without crashing; enable it for C++.
...
llvm-svn: 126026
2011-02-19 08:03:21 +00:00
Daniel Dunbar
1094bb101b
Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because of
...
the special way we model "linker input" arguments.
llvm-svn: 126023
2011-02-19 05:33:51 +00:00
Argyrios Kyrtzidis
af45aca670
[analyzer] Use the new registration mechanism on the non-path-sensitive-checkers:
...
DeadStoresChecker
ObjCMethSigsChecker
ObjCUnusedIvarsChecker
SizeofPointerChecker
ObjCDeallocChecker
SecuritySyntaxChecker
llvm-svn: 125779
2011-02-17 21:39:33 +00:00
NAKAMURA Takumi
31ea2f14bc
Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.
...
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.
llvm-svn: 125742
2011-02-17 08:51:38 +00:00
NAKAMURA Takumi
029d74b264
Fix whitespace.
...
llvm-svn: 125741
2011-02-17 08:50:50 +00:00
Ted Kremenek
378313944f
Disable default synthesized properties until we can properly re-evaluate the feature.
...
llvm-svn: 125708
2011-02-17 02:17:56 +00:00
Argyrios Kyrtzidis
b2400924d9
[analyzer] Use the new registration mechanism on the IdempotentOperationChecker.
...
llvm-svn: 125611
2011-02-15 22:55:14 +00:00
Argyrios Kyrtzidis
a6d04d541d
[analyzer] Use the new registration mechanism on some of the internal checks. These are:
...
StackAddrLeakChecker
ObjCAtSyncChecker
UnixAPIChecker
MacOSXAPIChecker
The rest have/create implicit dependencies between checkers and need to be handled differently.
llvm-svn: 125559
2011-02-15 07:42:33 +00:00
Argyrios Kyrtzidis
556c45e9c5
[analyzer] Overhauling of the checker registration mechanism.
...
-Checkers will be defined in the tablegen file 'Checkers.td'.
-Apart from checkers, we can define checker "packages" that will contain a collection of checkers.
-Checkers can be enabled with -analyzer-checker=<name> and disabled with -analyzer-disable-checker=<name> e.g:
Enable checkers from 'cocoa' and 'corefoundation' packages except the self-initialization checker:
-analyzer-checker=cocoa -analyzer-checker=corefoundation -analyzer-disable-checker=cocoa.SelfInit
-Introduces CheckerManager and CheckerProvider. CheckerProviders get the set of checker names to enable/disable and
register them with the CheckerManager which will be the entry point for all checker-related functionality.
Currently only the self-initialization checker takes advantage of the new mechanism.
llvm-svn: 125503
2011-02-14 18:13:31 +00:00
Matt Beaumont-Gay
1fe49151c9
Add braces to quiet a gcc warning.
...
llvm-svn: 125309
2011-02-10 20:35:01 +00:00
Roman Divacky
66f2276aee
Adjust the object files to be linked in when mcount profiling
...
is specified in the FreeBSD linker driver.
llvm-svn: 125285
2011-02-10 16:59:40 +00:00
Roman Divacky
178e0160b7
Implement mcount profiling, enabled via -pg.
...
llvm-svn: 125282
2011-02-10 16:52:03 +00:00
NAKAMURA Takumi
98dd73d66c
CMake: LLVM_NO_RTTI must be obsolete now!
...
llvm-svn: 125275
2011-02-10 09:15:32 +00:00
Daniel Dunbar
0bb0331d95
Driver/Frontend: Wire up -mregparm=.
...
llvm-svn: 125201
2011-02-09 17:54:19 +00:00
Benjamin Kramer
1a648d1930
Allow multiple -B prefixes. Patch by Joerg Sonnenberger.
...
llvm-svn: 125111
2011-02-08 20:31:42 +00:00
Bob Wilson
d1447c45fa
Add better support for ARM EABI triples.
...
Patch by Renato Golin!
llvm-svn: 124878
2011-02-04 17:59:28 +00:00
Daniel Dunbar
80f787c1c1
Driver: Fix spurious warning (from -cc1) about unused -fapple-kext on C inputs.
...
llvm-svn: 124875
2011-02-04 17:24:47 +00:00
Daniel Dunbar
7aa71f9423
build: Add support for DISABLE_DEFAULT_STRICT_ALIASING, which does what one
...
might expect.
llvm-svn: 124848
2011-02-04 02:20:39 +00:00
Oscar Fuentes
edeaf16f2c
Moved here from LLVM Clang's configuration options and related macros.
...
llvm-svn: 124825
2011-02-03 22:48:20 +00:00
Daniel Dunbar
ac540b3859
clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrors
...
CC_PRINT_OPTIONS and can be used to get some out-of-band information on header
usage from a build.
llvm-svn: 124751
2011-02-02 21:11:35 +00:00
Benjamin Kramer
24f1d3e60a
Add NetBSD target support. Patch by Joerg Sonnenberger.
...
llvm-svn: 124736
2011-02-02 18:59:27 +00:00
Nick Lewycky
75033770f4
Turn on -momit-leaf-frame-pointer by default on all non-Darwin platforms.
...
Fixes PR9121!
llvm-svn: 124718
2011-02-02 06:43:03 +00:00
Nick Lewycky
22197c1334
Add support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!
...
llvm-svn: 124699
2011-02-01 23:03:29 +00:00
Douglas Gregor
dbe3927026
Basic support for -mms-bitfields, from Carl Norum!
...
llvm-svn: 124661
2011-02-01 15:15:22 +00:00
Roman Divacky
115f0fa397
Add hardcoded -L/usr/lib after all -L options to the FreeBSD linker
...
invocation.
This mimics what gcc does and fixes libtool check for libraries.
llvm-svn: 124558
2011-01-30 08:12:24 +00:00
Argyrios Kyrtzidis
c7ffd35cb7
[analyzer] Enable the self-init checker under command-line option '-analyzer-check-objc-self-init' which by default
...
is enabled by the driver for '--analyze'.
llvm-svn: 124266
2011-01-26 01:26:50 +00:00
Chris Lattner
906bb9047a
improve compatibility with GCC: when generating the ".d" filename to use
...
and the filename has multiple .'s in it, use the last. For example, "foo.bar.cpp"
should produce "foo.bar.d" not "foo.d". Patch by Johan Boule in PR8391
llvm-svn: 123576
2011-01-16 08:14:11 +00:00
Ted Kremenek
f6ab5ff7d7
Driver: tweak handling of '--analyze' to invoke
...
analyzer -cc1 options that are tailored to the
input type. If the input type is "C++", we should
only run the dead stores checker (for now). Similarly,
checks specific to Objective-C should only run
on Objective-C Code.
llvm-svn: 123481
2011-01-14 22:31:31 +00:00
Chris Lattner
8cf302a1e7
optimize out a temporary sys::Path
...
llvm-svn: 123359
2011-01-13 01:35:58 +00:00
Michael J. Spencer
634f13eacb
replace all uses of PathV1::IsSymlink with PathV2::is_symlink.
...
llvm-svn: 123344
2011-01-12 23:54:48 +00:00
Daniel Dunbar
e26e500b79
Driver: Change -dumpversion to return a GCC compatible answer.
...
- See comment for why.
llvm-svn: 123296
2011-01-12 00:43:47 +00:00
Michael J. Spencer
f6efe58d45
Replace all uses of PathV1::exists with PathV2::fs::exists.
...
llvm-svn: 123150
2011-01-10 02:34:13 +00:00
Fariborz Jahanian
a4cfff87b9
Add all options needed to support -fapple-kext. wip.
...
llvm-svn: 122987
2011-01-07 01:05:02 +00:00
Fariborz Jahanian
3aa19e9a70
Fold -fobjc-nonfragile-abi2 into -fobjc-nonfragile-abi.
...
// rdar://8818375
llvm-svn: 122831
2011-01-04 20:05:20 +00:00
Nick Lewycky
6da90771c4
Remove stray emacs mode markers in all these files that was causing emacs to
...
open them in fundamental-mode instead of c++-mode.
Also twiddle whitespace for consistency in ToolChains.cpp.
llvm-svn: 122646
2010-12-31 17:31:54 +00:00
Ted Kremenek
1d56c9eed7
Add -fobjc-default-synthesized-properties flag
...
to allow us to explicitly control whether or
not Objective-C properties are default synthesized.
Currently this feature only works when using
the -fobjc-non-fragile-abi2 flag (so there is
no functionality change), but we can now turn
off this feature without turning off all the features
coupled with -fobjc-non-fragile-abi2.
llvm-svn: 122519
2010-12-23 21:35:43 +00:00
Rafael Espindola
7f73489c3f
Fix PR8639 by making the "argument unused during compilation" less agressive. Now we
...
don't warn if an argument is not used because it is shadowed by a subsequent argument.
llvm-svn: 122281
2010-12-20 22:45:09 +00:00
Michael J. Spencer
e47230f9b5
Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 equivalents.
...
llvm-svn: 122140
2010-12-18 04:13:32 +00:00
Michael J. Spencer
e169675474
Replace all uses of PathV1::getLast with PathV2::filename.
...
llvm-svn: 122117
2010-12-18 00:19:12 +00:00
Eric Christopher
62a78b04a8
Going back to the drawing board with these two awful hacks.
...
llvm-svn: 122096
2010-12-17 22:46:41 +00:00
Michael J. Spencer
1a4fe8c991
Fix spelling.
...
llvm-svn: 122088
2010-12-17 21:22:33 +00:00
Michael J. Spencer
f28df4cdba
Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.
...
llvm-svn: 122087
2010-12-17 21:22:22 +00:00
Eric Christopher
4698e938b1
Horrible hack for systems that use -dumpversion with clang to expect versions
...
that match gcc versions. Eew.
llvm-svn: 122080
2010-12-17 19:13:21 +00:00
Michael J. Spencer
d9da7a1f16
MemoryBuffer API update.
...
llvm-svn: 121956
2010-12-16 03:28:14 +00:00
Michael J. Spencer
f25faaaffb
Use error_code instead of std::string* for MemoryBuffer.
...
llvm-svn: 121378
2010-12-09 17:36:38 +00:00
Daniel Dunbar
86aed7d5fc
Driver: M and MM should be grouped together, <rdar://problem/8744831>.
...
llvm-svn: 121284
2010-12-08 21:33:40 +00:00
Nick Lewycky
c7a020af87
Remove stray emacs mode marker.
...
llvm-svn: 120554
2010-12-01 04:33:27 +00:00
Peter Collingbourne
62089b82bb
Driver, Frontend: add CUDA language support
...
llvm-svn: 120544
2010-12-01 03:15:20 +00:00
Rafael Espindola
81937ec1b6
Handle -nostartfiles.
...
llvm-svn: 120528
2010-12-01 01:52:43 +00:00
Michael J. Spencer
8aaf49959c
Merge System into Support.
...
llvm-svn: 120297
2010-11-29 18:12:39 +00:00
Rafael Espindola
739b9cf104
Add missing else.
...
llvm-svn: 120231
2010-11-28 01:08:36 +00:00
Anders Carlsson
d470fef01d
Forward the -fno-elide-constructor argument to clang -cc1. Fixes PR8652.
...
llvm-svn: 119915
2010-11-21 00:09:52 +00:00
Rafael Espindola
64fff2998d
Check for gcc 4.3.4.
...
llvm-svn: 119839
2010-11-19 21:02:06 +00:00
Daniel Dunbar
6d776eb1e8
Driver/Darwin: Don't pass -demangle to an iOS linker, which may not understand
...
it.
llvm-svn: 119809
2010-11-19 17:51:40 +00:00
Nuno Lopes
eb156609fe
add support for the i686-pc-linux-gnu triple (used by Gentoo x86)
...
llvm-svn: 119807
2010-11-19 17:26:57 +00:00
Daniel Dunbar
7c87433513
Driver: Ignore -force_cpusubtype_ALL.
...
llvm-svn: 119803
2010-11-19 16:23:35 +00:00
Argyrios Kyrtzidis
31448a415e
Use hasErrorOccurred() instead of getNumErrors() where it makes sense.
...
llvm-svn: 119746
2010-11-18 21:47:07 +00:00
Argyrios Kyrtzidis
d004064864
Refactoring of Diagnostic class.
...
-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.
llvm-svn: 119730
2010-11-18 20:06:41 +00:00
Argyrios Kyrtzidis
ef6c8da50f
-Rename -Wargument-larger-than -> -Wlarge-by-value-copy
...
-Improve the diagnostic message
-Add some comments
Suggestions by Chris.
llvm-svn: 119594
2010-11-18 00:20:36 +00:00
Argyrios Kyrtzidis
af84ec0a96
Introduce option -Wargument-larger-than[=N] which warns about function definitions if they take by-value
...
or return by-value any POD that is larger than some threshold (default is 64 bytes).
Implements rdar://8548050.
llvm-svn: 119583
2010-11-17 23:11:54 +00:00
Rafael Espindola
d47ac23154
Implement -pie.
...
llvm-svn: 119577
2010-11-17 22:26:15 +00:00
Rafael Espindola
cfaaddaee0
Don't warn about
...
clang -w -c foo.s
Helps with the gdb testsuite.
llvm-svn: 119574
2010-11-17 22:13:25 +00:00
Rafael Espindola
f92614c578
Don't warn about -w not being used in a link. Necessary to get sane
...
results in the gdb testsuite.
llvm-svn: 119552
2010-11-17 20:37:10 +00:00
Rafael Espindola
9b6fae5d6d
Silence warning for "clang -O2 -O0 -c foo.c -o foo.o.
...
Fixes PR8607.
llvm-svn: 119498
2010-11-17 15:16:14 +00:00
Rafael Espindola
2abb162631
Add support for distros that like x86_64-unknown-linux-gnu.
...
llvm-svn: 119425
2010-11-17 00:25:26 +00:00
Rafael Espindola
d1002f6fce
Fixes PR8611.
...
Silence warning about -g not being used during linking. I couldn't find any
change in behavior in gcc liking when given -g. Please open another bug if
I missed something.
llvm-svn: 119166
2010-11-15 18:28:16 +00:00
Zhongxing Xu
14776cf96a
Add driver support for Ubuntu 9.10.
...
llvm-svn: 119137
2010-11-15 09:01:52 +00:00
Daniel Dunbar
fc8aefb0ba
Driver: Support -Oz as an alias for -Os.
...
llvm-svn: 119003
2010-11-13 18:17:11 +00:00
Rafael Espindola
9aa60e964e
Add support for -nostdlib in the linux toolchain.
...
llvm-svn: 118878
2010-11-12 03:00:39 +00:00
Rafael Espindola
34d77dc49a
Add support for -s, -pthread and -pthreads. Thanks to Hans Wennborg and
...
Cosmin Truta for reporting it.
llvm-svn: 118826
2010-11-11 19:34:42 +00:00
Daniel Dunbar
aeed5fe6a2
Driver: Allow build system override of default non-fragile ABI version.
...
llvm-svn: 118786
2010-11-11 16:08:59 +00:00
Rafael Espindola
7ba97afc4d
Add -rdynamic to freebsd and openbsd. Patch by Ruben.
...
llvm-svn: 118771
2010-11-11 02:17:51 +00:00
Rafael Espindola
124798484a
Add support for Exherbo. Patch by Elias Pipping.
...
llvm-svn: 118769
2010-11-11 02:07:13 +00:00
Rafael Espindola
66b291a41b
Add support for Ubuntu Jaunty.
...
llvm-svn: 118673
2010-11-10 05:00:22 +00:00
Bruno Cardoso Lopes
e7f211c89f
Add support for soft/hard float options to the Sparc target
...
llvm-svn: 118514
2010-11-09 17:21:19 +00:00
Roman Divacky
b45d2672f7
Add a forgotten break. Found by Rafael Espindola!
...
llvm-svn: 118433
2010-11-08 19:39:10 +00:00
Roman Divacky
137426a42f
Use integrated-as for processing .s files on FreeBSD. Copied
...
from Linux/OpenBSD code.
llvm-svn: 118419
2010-11-08 17:46:39 +00:00
Rafael Espindola
c5688628d8
Pass "-z relro" as two arguments. This works with both gnu ld and gold.
...
Patch by Frits van Bommel.
llvm-svn: 118406
2010-11-08 14:48:47 +00:00
Rafael Espindola
96aef794ba
Use the integrated assembler when procession .s files on OpenBSD and Linux.
...
Original patch for OpenBSD by Vladimir Kirillov.
llvm-svn: 118386
2010-11-07 23:13:01 +00:00
Rafael Espindola
1c76c59bbc
Add support for -rdynamic.
...
llvm-svn: 118384
2010-11-07 22:57:16 +00:00
Rafael Espindola
c8f008f649
Use ld directly on linux. Changes from the previous try:
...
*) Try to detect as much as possible from the system itself, not the distro.
This should make it easier to port to a new distro and more likely to
work on a unknown one.
*) The distro enum now doesn't include the arch. Just use the existing
host detection support in LLVM.
*) Correctly handle --sysroot.
A small regression is that now clang will pass bitcode file to the linker.
This is necessary for the gold plugin support to work.
It might be better to detect this at configure/cmake time, but doing it in
c++ first is a lot easier.
llvm-svn: 118382
2010-11-07 20:14:31 +00:00
Argyrios Kyrtzidis
71731d6b05
Implement -working-directory.
...
When -working-directory is passed in command line, file paths are resolved relative to the specified directory.
This helps both when using libclang (where we can't require the user to actually change the working directory)
and to help reproduce test cases when the reproduction work comes along.
--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains
the working directory value if set).
--FileSystemOptions are passed around to various interfaces that perform file operations.
--Opening & reading the content of files should be done only through FileManager. This is useful in general since
file operations will be abstracted in the future for the reproduction mechanism.
FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same
FileManager but with different FileSystemOptions.
Addresses rdar://8583824.
llvm-svn: 118203
2010-11-03 22:45:23 +00:00
Rafael Espindola
b2cbd85be8
Revert while I debug test failures :-(
...
llvm-svn: 118150
2010-11-03 04:43:56 +00:00
Rafael Espindola
c5dfb607f5
Switch clang to run ld directly on linux. I tested this on all the linux
...
distros listed by running
gcc main.o -o main
g++ main.o -o main
gcc main.o -o main -static
g++ main.o -o main -static
gcc f.o -o f.so -shared
g++ f.o -o f.so -shared
and comparing the ld line with the one created by clang. I also added
-m32/m64 in distros that support it.
While I tested many distros, there will always be more. If you are hit by this
it should be somewhat easy to add your distro. If you are in a hurry, do
revert this, but please inform how to detect you distro and the ld command
lines produced by the above gcc invocations. Most distros have some patches
on gcc :-(
llvm-svn: 118149
2010-11-03 04:37:51 +00:00
Daniel Dunbar
3ada2b7996
Driver: Silently ignore -fasm-blocks for now instead of error'ing, this cause
...
some unexpected fallout.
llvm-svn: 118037
2010-11-02 19:42:04 +00:00
Benjamin Kramer
7d11382b8c
Use the expanded form of S_ISREG. Hopefully this unbreaks the MSVC build.
...
llvm-svn: 117779
2010-10-30 08:28:42 +00:00
Dan Gohman
e89c04e518
Don't test isRegularFile before calling eraseFromDisk, since
...
eraseFromDisk does the same check. This avoids a stat call
in the common case.
llvm-svn: 117744
2010-10-29 23:26:14 +00:00
Rafael Espindola
acc8709850
Switch to using the integrated assembler by default on x86 and x86-64 ELF
...
systems.
llvm-svn: 117697
2010-10-29 20:14:02 +00:00
Daniel Dunbar
a78e589b08
Driver/IA: Ignore -L for now, which users shouldn't be using for semantic effect.
...
llvm-svn: 117600
2010-10-28 20:36:23 +00:00
Michael J. Spencer
4992ca4b17
Reorganize predefined macros for all Windows targets.
...
This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.
-fmsc-version=<version> (defaults to VS2003 (1300))
llvm-svn: 116999
2010-10-21 05:21:48 +00:00
Michael J. Spencer
4c0ffa823f
Fix Whitespace.
...
llvm-svn: 116990
2010-10-21 03:16:25 +00:00
Chandler Carruth
24e17e175d
Add support for the '--sysroot' flag, and an accompanying test of its
...
interactions with -isysroot and other driver commands.
llvm-svn: 116912
2010-10-20 07:00:47 +00:00
Chandler Carruth
06067c556a
Use CLANG_RESOURCE_DIR define if one is provided, otherwise use the default of
...
'../lib/clang/<version>'. Actually use '..' rather than removing the trailing
component to correctly handle paths containing '.' or symlinks in the presence
of -no-canonical-prefixes, etc. This shouldn't change any existing behavior.
llvm-svn: 116803
2010-10-19 08:47:51 +00:00
Daniel Dunbar
473f8a6f88
Driver: Reject -fasm-blocks except on X86 (where we just ignore it, since
...
passing it is very prevalent in some circles).
llvm-svn: 116761
2010-10-18 22:49:46 +00:00
Daniel Dunbar
2b4de14b1d
Driver/IA: Accept and ignore -force_cpusubtype_ALL, as in 'clang -c
...
-Wa,-force_cpusubtype_ALL t.c'.
- Tweaks -Wa, and -Xassembler handling to only accept an explicit short list of
arguments and give an obvious unsupported error on others.
llvm-svn: 116759
2010-10-18 22:36:15 +00:00
Daniel Dunbar
767bbabb24
Driver/Darwin: Forward -ObjC when linking, which may be needed when using static
...
libraries with Objective-C code.
llvm-svn: 116758
2010-10-18 22:08:36 +00:00
Daniel Dunbar
6358d6866d
Driver: Error on -fno-for-scope, which we have no intention of supporting.
...
llvm-svn: 116627
2010-10-15 22:30:42 +00:00
Argyrios Kyrtzidis
dfe47dba37
Revert r116605, a lot more were committed by mistake.
...
llvm-svn: 116606
2010-10-15 18:51:34 +00:00
Argyrios Kyrtzidis
ffbba26285
Add '-include-pch' option to the driver, so it can get passed to the cc1 driver.
...
llvm-svn: 116605
2010-10-15 18:49:01 +00:00
Dan Gohman
10169b94cf
Wire up the -fstrict-aliasing and -fno-strict-aliasing options
...
to CodeGenOption flags.
llvm-svn: 116530
2010-10-14 22:36:56 +00:00
Daniel Dunbar
89329cb8f7
Driver/Darwin: Remove a useless warning about missing runtime libraries. These
...
are almost never needed, so the warning isn't very useful.
llvm-svn: 116263
2010-10-11 23:31:07 +00:00
Douglas Gregor
4e0f15a4a2
Eliminate -fdiagnostics-binary and all of the infrastructure for
...
emitting diagnostics in a binary form to be consumed by libclang,
since libclang no longer does any of its work out-of-process, making
this code dead. Besides, this stuff never worked at 100% anyway.
llvm-svn: 116250
2010-10-11 22:02:06 +00:00
Axel Naumann
b151c3c2d6
Declare argv parameters as const char* const* instead of to char** to clarify that they are not modified, and to allow for string literals as arguments.
...
llvm-svn: 116200
2010-10-11 09:18:43 +00:00
NAKAMURA Takumi
89acd1e7ef
lib/Driver/Driver.cpp: Use the driver g++-4 for Cygwin-1.5.
...
llvm-svn: 116183
2010-10-11 02:28:42 +00:00
NAKAMURA Takumi
6bdc8a2d8a
lib/Driver/Tools.cpp: Disable cxa_atexit by default also on Cygwin.
...
llvm-svn: 116161
2010-10-10 01:53:03 +00:00
Argyrios Kyrtzidis
74825bcfb9
Implement -fshort-enums (rdar://8490496).
...
llvm-svn: 116020
2010-10-08 00:25:19 +00:00
John McCall
2a981c2056
Teach the driver to pass -fexceptions in Objective-C inputs on ARM.
...
I don't know when this stopped happening, but this seems to be the
right place to do it.
llvm-svn: 115730
2010-10-06 01:40:51 +00:00
Devang Patel
91bbb5547d
Introduce -flimit-debug-info.
...
In this experimental mode try avoiding debug info emission for classes as much as possible. The goal is to reduce size of produced debuginfo without reducing quality of debug info in general. This is a work in progress.
llvm-svn: 115188
2010-09-30 19:05:55 +00:00
Argyrios Kyrtzidis
2f23b414e9
Driver: Ignore the found PCH file if its '-include' is not the first one.
...
llvm-svn: 115158
2010-09-30 16:53:47 +00:00
Daniel Dunbar
f247675c55
Driver/Linux: Translate rewritten lib options back to standard -l form when
...
using generic GCC tools.
llvm-svn: 114793
2010-09-25 18:10:05 +00:00
Daniel Dunbar
4ed214a191
Driver: Add -fallow-unsupported which disables some of the eager error'ing we do
...
to prevent users from trying unsupported stuff. Useful for testing.
llvm-svn: 114749
2010-09-24 19:39:37 +00:00
Nick Lewycky
6e1ce29b01
Revert r114712 due to failure on darwin buildbot.
...
llvm-svn: 114713
2010-09-24 00:46:53 +00:00
Nick Lewycky
e351fed104
Make -M/-MM behave like in gcc; use -MF first then -o else use stdout.
...
llvm-svn: 114712
2010-09-23 23:49:25 +00:00
Nick Lewycky
e47c245b90
Fix header comment so we don't break emacs.
...
llvm-svn: 114711
2010-09-23 23:48:20 +00:00
Argyrios Kyrtzidis
4f92016ed3
If -fcolor-diagnostics is explicitly passed to the driver respect that even if the driver is of the opinion that
...
stderr can't handle them. (see http://llvm.org/PR8150 )
Patch by Frits van Bommel!
llvm-svn: 114638
2010-09-23 12:56:06 +00:00
Daniel Dunbar
da4f6b5151
Driver/Darwin: Add a runtime library just for ___eprintf -- when targeting i386
...
some projects still depend on ___eprintf being available.
llvm-svn: 114509
2010-09-22 00:03:52 +00:00
Daniel Dunbar
c1dd0e97f3
Driver/Objective-C: Retool Objective-C ABI flags to be more usable, and actually
...
document behavior. Will wonders never cease.
llvm-svn: 114334
2010-09-20 18:19:55 +00:00
Shantonu Sen
afeb03b41d
Driver: implement driver automagic support for -lcc_kext
...
Rewrite linker arguments to use libclang_rt.cc_kext.a
instead of gcc-specific libcc_kext.a
Resolves Radar 7808495
llvm-svn: 114193
2010-09-17 18:39:08 +00:00
David Chisnall
dd84ef1e62
Add a -ftrapv-handler= option which allows a handler to invoke instead of simply aborting when a signed operation overflows. This mirrors the (GCC-incompatible) behaviour from clang 1.0 and 1.1 when -ftrapv was specified, but allows the handler to be defined for each compilation unit.
...
llvm-svn: 114192
2010-09-17 18:29:54 +00:00
Daniel Dunbar
00aff04c8d
Driver/DarwinClang: Add GCC libexec paths so we can find the cc1 binaries if we
...
ever use fallback.
- Not necessary for clang as a compiler, but useful for testing purposes.
llvm-svn: 114172
2010-09-17 08:22:12 +00:00
Daniel Dunbar
14287de654
Reapply "Driver/Darwin: Time for another spin at switching to the DarwinClang",
...
now that eprintf symbol issue is resolved.
llvm-svn: 114166
2010-09-17 04:25:28 +00:00
Daniel Dunbar
e4f65f3885
Revert "Driver/Darwin: Time for another spin at switching to the DarwinClang
...
toolchain.", while I investigate the totally non-surprising ensuing breakage.
llvm-svn: 114164
2010-09-17 03:46:37 +00:00
Daniel Dunbar
1b09e04f9e
Driver: Support -dumpmachine.
...
llvm-svn: 114155
2010-09-17 02:47:28 +00:00
Daniel Dunbar
a7afcf92d1
Driver/Darwin: Time for another spin at switching to the DarwinClang toolchain.
...
llvm-svn: 114149
2010-09-17 01:56:41 +00:00
Daniel Dunbar
3f7796fc22
Driver: Fix spelling of AddCXXStdlibLibArgs, which I copy-n-pasto'd.
...
llvm-svn: 114147
2010-09-17 01:20:05 +00:00
Daniel Dunbar
8fa86b1a44
Driver/DarwinClang: The new toolchain definition is going to drop the -L inside
...
the GCC dir. Unfortunately, this breaks -lstdc++ on SnowLeopard, etc. because
the libstdc++ dylib was hiding there. Workaround this by providing the path to
the right -lstdc++.6 (the only version used in recent memory) if we can't see an
obvious -lstdc++, but can find = -lstdc++.6.
llvm-svn: 114146
2010-09-17 01:16:06 +00:00
Daniel Dunbar
2cc3f17a26
Driver: Add magic handling for "reserved library names", starting with
...
-lstdc++. This is the best gross solution for a gross problem.
This issue is that historically, GCC has add -L options to its internally
library directories. This has allowed users and platforms to end up depending on
the layout of GCC's internal library directories.
We want to correct this mistake by eliminating that -L, but this means that
existing libraries which are in the GCC lib dir won't be found. We are going to
handle this by treating those -l names as "reserved", and requiring toolchains
to know how to add the right full path to the reserved library.
The immediately side effect of this is that users trying to use -L to find their
own -lstdc++ will need to start using -nostdlib (which is a good idea
anyway). Another side effect is that -stdlib=libc++ -lstdc++ will now do the
"right" thing, for curious definitions of right.
llvm-svn: 114144
2010-09-17 00:45:02 +00:00
Daniel Dunbar
54423b2a86
Driver: Factor out AddLinkerInputs() function.
...
llvm-svn: 114138
2010-09-17 00:24:54 +00:00
Daniel Dunbar
62123a12f1
Driver: Add a toolchain hook for whether the system has native LLVM support.
...
llvm-svn: 114137
2010-09-17 00:24:52 +00:00
Fariborz Jahanian
f51a38777b
Make the new -fobjc-nonfragile-abi2 the default
...
abi for clang's objective-c compilations.
(radar 8353555).
llvm-svn: 113974
2010-09-15 16:00:51 +00:00
Daniel Dunbar
092b6fb187
Driver: Add a -stdlib= argument which can be used to select the C++ standard
...
library to use.
- This is currently useful for testing libc++; you can now use 'clang++
-stdlib=libc++ t.cpp' to compile using it if installed.
- In the future could also be used to select other standard library choices if
alternatives become available (for example, to use an alternate C library).
llvm-svn: 113891
2010-09-14 23:12:40 +00:00
Daniel Dunbar
bf11f79053
Driver: Factor out some code for handling the C++ standard library.
...
llvm-svn: 113890
2010-09-14 23:12:35 +00:00
Daniel Dunbar
30a12b8d88
Simplify.
...
llvm-svn: 113889
2010-09-14 23:12:31 +00:00
Michael J. Spencer
09476212de
Revert "CMake: Update to use standard CMake dependency tracking facilities instead"
...
This reverts commit r113631
Conflicts:
CMakeLists.txt
lib/CodeGen/CMakeLists.txt
llvm-svn: 113817
2010-09-13 23:54:41 +00:00
Anton Korobeynikov
82b3333b72
Disable cxa_atexit by default on MingW.
...
Patch by Dimitry Andric!
llvm-svn: 113683
2010-09-11 11:17:06 +00:00
Michael J. Spencer
0881f4a367
CMake: Update to use standard CMake dependency tracking facilities instead
...
of whatever we were using before...
llvm-svn: 113631
2010-09-10 21:13:16 +00:00
Daniel Dunbar
ccbc45262b
Driver/Darwin: Make the compilation object available in AddLinkArgs.
...
llvm-svn: 113549
2010-09-09 21:51:05 +00:00
Daniel Dunbar
859dba6637
Driver: Mark function as nounwind when -mkernel or -fapple-kext is present.
...
llvm-svn: 113541
2010-09-09 21:17:44 +00:00
Douglas Gregor
c9199f522f
Clean up CMake dependencies
...
llvm-svn: 113489
2010-09-09 15:44:58 +00:00
Daniel Dunbar
3d7e0e2c6b
Driver/Darwin: Catch another case where ld ends up using ld_classic.
...
llvm-svn: 113226
2010-09-07 17:50:41 +00:00
Daniel Dunbar
1eaf5c6abb
Driver/Darwin: Don't pass -demangle to the linker when we know it is going to
...
use ld_classic. This is a temporary workaround, the linkr itself should handle
this.
llvm-svn: 113212
2010-09-07 17:07:49 +00:00
Rafael Espindola
b2d0d40c3d
Make "-ccc-cxx" option work on Linux.
...
Patch by nobled.
I also took the opportunity to make the field private since now it is only ready from the
outside.
llvm-svn: 113138
2010-09-06 02:36:23 +00:00
Douglas Gregor
6368235c5a
Add missing #include
...
llvm-svn: 112974
2010-09-03 17:16:03 +00:00
Chris Lattner
d7e9383ba0
fix a hard coded version number, PR8031. Patch by 'nobled'.
...
llvm-svn: 112970
2010-09-03 16:47:03 +00:00
Dawn Perchik
68bb1b441f
Add support for Borland extensions via option -fborland-extensions
...
(original patch r112791 was reverted due to a bug).
llvm-svn: 112915
2010-09-02 23:59:25 +00:00
Dawn Perchik
f0882f90f3
Reverting rev 112791 - apparently -fborland-extensions is on all the time?!
...
llvm-svn: 112797
2010-09-02 02:18:55 +00:00
Dawn Perchik
1fcc18c7bc
Add support for Borland extensions via option -fborland-extensions
...
llvm-svn: 112791
2010-09-02 01:12:01 +00:00
Daniel Dunbar
f241019e24
Driver/Darwin: Switch back to old toolchain, looks like new one isn't quite
...
ready yet.
llvm-svn: 112138
2010-08-26 01:41:44 +00:00
Daniel Dunbar
b8f7a14575
Driver: Fix thinko where I switched to always using the old toolchain, instead
...
of always using the new toolchain.
llvm-svn: 112125
2010-08-26 00:55:55 +00:00
Daniel Dunbar
e9f7151485
Driver/Darwin: Pass the right arch specific dir for ARM, when linking.
...
llvm-svn: 112124
2010-08-26 00:55:52 +00:00
Daniel Dunbar
d435275c59
Frontend: Add basic -H support.
...
- I didn't implement the GCC "multiple include guard" detection parts, because
it doesn't seem useful or obvious.
llvm-svn: 111983
2010-08-24 22:44:13 +00:00
Daniel Dunbar
fe6c97b443
Driver/Clang: Forward -Wa, and -Xassembler to clang -cc1 when using the
...
integrated assembler. For now this mostly just means that we will error out if
someone tries to use this mechanism to send an argument to the assembler.
llvm-svn: 111921
2010-08-24 16:47:49 +00:00
Daniel Dunbar
82eb4ce476
Driver: Move Clang "triple" computation routines to method on the
...
ToolChain. This fixes a potenial bad cast when running Clang on PPC code, since
the tool chain in effect is not a subclass of the Darwin one, but we were
treating it like it was.
- This introduces some gross code duplication, but the right fix for it is to
just move the Driver to start depending on the targets in libBasic, so I am
not planning on fixing it immediately.
llvm-svn: 111856
2010-08-23 22:35:37 +00:00
Daniel Dunbar
e31e323c02
Driver/Darwin: Switch to using simplified tool chain by default -- what better
...
way to see what will break! :)
llvm-svn: 111840
2010-08-23 20:58:55 +00:00
Daniel Dunbar
09a4851ead
Driver/Darwin: When using the simplified Clang toolchain, make sure to also pass
...
the arch specific gcc lib path.
llvm-svn: 111839
2010-08-23 20:58:52 +00:00
Daniel Dunbar
5d3b70a6fc
Driver: Update -ccc-install-dir to also set the installed dir. Totally
...
non-obvious.
llvm-svn: 111838
2010-08-23 20:58:50 +00:00
Chandler Carruth
6f33bd9345
Add two new enumerations to the unsupported list for Windows so that all cases
...
are handled.
llvm-svn: 111773
2010-08-22 06:56:37 +00:00
Michael J. Spencer
b186bc3c4b
Visual Studio tools used on win32 hosts when targeting win32.
...
llvm-svn: 111748
2010-08-21 21:55:07 +00:00
Douglas Gregor
eec975ce5a
Add machine-parseable Fix-It output as part of diagnostics, under the
...
flag -fdiagnostics-parseable-fixits, from Eelis van der Weegen!
llvm-svn: 111557
2010-08-19 20:24:43 +00:00
Daniel Dunbar
b613ffc1aa
Driver: Claim the -mlinker-version synthesized argument, it shouldn't be
...
reported as unused.
llvm-svn: 111310
2010-08-17 22:32:45 +00:00
David Chisnall
589a494352
Pass some things to the linker that gcc passes. -r is the only one of these that I'm sure about, but the others seem to be listed on FreeBSD by gcc -dumpspecs, so I hope they're right. Apparently -r is also not passed on GNU/Linux (and should be), but I can't see where the toolchain definition for this platform live.
...
llvm-svn: 111114
2010-08-15 22:58:12 +00:00
Daniel Dunbar
568b7500fe
Driver/OptParser: Add a NoForward flag to prevent forwarding certain options to
...
GCC.
- Mark -Xclang and -mlinker-version= with it for now, although I am sure there
are more.
llvm-svn: 111005
2010-08-13 04:44:20 +00:00
Daniel Dunbar
628fcf4e3b
Driver: Use the compile time linker version as the default for -mlinker-version,
...
if detected.
- This is a hack, we really want the linker version at execution time, but we
don't have any infrastructure for getting that. Yet.
llvm-svn: 110886
2010-08-12 00:05:12 +00:00
Argyrios Kyrtzidis
90bdfbbdf7
Switch on PCH for C++. C++ fans all over the world rejoice.
...
llvm-svn: 110879
2010-08-11 23:27:58 +00:00
Daniel Dunbar
cacb0e2d45
Driver/Darwin: Pass -demangle when linking, if the linker supports it.
...
llvm-svn: 110873
2010-08-11 23:07:50 +00:00
Daniel Dunbar
976a2f54fa
Driver: Add -mlinker-version=, which forwards to -target-linker-version.
...
llvm-svn: 110872
2010-08-11 23:07:47 +00:00
Ted Kremenek
0476899b20
Turn on idempotent operations checker when using --analyze.
...
llvm-svn: 110695
2010-08-10 18:03:13 +00:00
Daniel Dunbar
ce25f33e2a
Driver/FreeBSD: Infer the right arch name in the presence of -m32,-m64, for the
...
cases we care about.
- This is eventually going to be unified outside the host specific code.
llvm-svn: 110693
2010-08-10 17:39:05 +00:00
Rafael Espindola
92b0093112
Run the assembler instead of gcc on Linux.
...
llvm-svn: 110635
2010-08-10 00:25:48 +00:00