aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
AgeCommit message (Collapse)Author
2011-03-27Add -f[no-]strict-overflow to the Clang driver. Use it to set theChandler Carruth
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128353 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-24Rework checker "packages" and groups to be more hierarchical.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128187 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-22Frontend: Add a more explicit -backend-option flag for passing backend commandDaniel Dunbar
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128087 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21Add clang support for cortex-m0 cpus. Patch by James Orr.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128018 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21Introduce FindTargetProgramPath to check for a target-specific helperJoerg Sonnenberger
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21Remember sysroot in Driver. Pass it down to ld for NetBSD, FreeBSDJoerg Sonnenberger
and DragonFly. Use the --sysroot= form for Linux. Fix handling of = prefix for -B. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127994 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18Driver: Forward -traditional and -traditional-cpp in preprocessing modes.Daniel Dunbar
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18The Darwin kernel does not provide useful guard variable support.John McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127854 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17Driver/Obj-C: Be compatible with GCC behavior in that -fno-exceptions *does not*Daniel Dunbar
disable Obj-C exceptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127836 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17Driver/Darwin: These are command line options, not target features.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127820 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17Driver/Darwin: Suppress spurious warning about -force_cpusubtype_ALL.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127819 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17Driver/Darwin/ARM: Kernel/kext code has more strict alignment requirements.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127815 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-17Driver/ARM: Match GCC behavior in that -msoft-float disables NEON, despite thisDaniel Dunbar
not being consistent at all with other parts of the GCC implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127777 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-12Re-enable the IdempotentOperations checker for --analyze, and put it and the ↵Ted Kremenek
DeadStores checker into the "deadcode" group. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-06If called as *cpp or *cpp-[^-]*, run only the preprocessor. If noJoerg Sonnenberger
input is specified, use stdin implicitly. Based on a patch from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127137 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-06Fix driver for thumb-capable ARM hosts, from Mikko Lehtonen!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-02build: Allow disabling movt/movw from build, for testing purposes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126810 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01Driver/Darwin: Be bug compatible with GCC and ignore -pg on ARM.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126767 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01The default CPU on FreeBSD for i386 should be i486, not pentium4.Roman Divacky
Patch by Dimitry Andric! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126763 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01For linking on FreeBSD, don't add a hardcoded "-L/usr/lib", butRoman Divacky
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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126757 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01Implement -mrtd which sets the StdCall calling convention to be the defaultRoman Divacky
one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126756 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-01Disable more warnings so that it is safe to useRafael Espindola
CC="clang -use-gold-plugin -emit-llvm" CXX="clang++ -use-gold-plugin -emit-llvm" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126740 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28Don't warn about "clang -use-gold-plugin -c ...". With this users can sayRafael Espindola
CC="clang -use-gold-plugin" CFLAGS=-emit-llvm ../configure... and not be hit with a warning for each .c file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126713 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28[analyzer] Remove '-analyzer-check-objc-mem' flag, the nominee for best ↵Argyrios Kyrtzidis
misnomer award. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126676 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28Make -fobjc-nonfragile-abi and -fgnu-runtime imply -fblocks (unless ↵David Chisnall
-fno-blocks is specified), because this combination of flags defines an Objective-C runtime that includes a blocks runtime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126654 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28Fix a tiny goof in the Driver's logic which caused the explicit presenceChandler Carruth
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126640 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28Add a -fcxx-exceptions flag to the frontend, which can be used to enableAnders Carlsson
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126630 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28[analyzer] Move the DeadStores checker out of the 'core' package.Argyrios Kyrtzidis
-Now it gets enabled with '-analyzer-checker=DeadStores'. -The driver passes the above flag by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-28Factor code out into a helper function, ↵Anders Carlsson
shouldUseExceptionTablesForObjCExceptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126601 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-22Make clang -cc1 disable Objective-C exceptions by default, and add a ↵Anders Carlsson
-fobjc-exceptions flag to turn them on. Update all tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-21Pass the right linker flag in openbsd::Link::ConstructJob,Chris Lattner
patch by Matthew Dempsky! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126133 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Add a new ObjCExceptions member variable to LangOptions. This controls ↵Anders Carlsson
whether Objective-C exceptions are enabled or not (they are by default). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126061 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19[analyzer] '-analyzer-check-objc-mem' can go through the llvm/clang codebase ↵Argyrios Kyrtzidis
without crashing; enable it for C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126026 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because ofDaniel Dunbar
the special way we model "linker input" arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126023 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17[analyzer] Use the new registration mechanism on the ↵Argyrios Kyrtzidis
non-path-sensitive-checkers: DeadStoresChecker ObjCMethSigsChecker ObjCUnusedIvarsChecker SizeofPointerChecker ObjCDeallocChecker SecuritySyntaxChecker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125779 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.NAKAMURA Takumi
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125742 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Fix whitespace.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125741 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15[analyzer] Use the new registration mechanism on the IdempotentOperationChecker.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15[analyzer] Use the new registration mechanism on some of the internal ↵Argyrios Kyrtzidis
checks. These are: StackAddrLeakChecker ObjCAtSyncChecker UnixAPIChecker MacOSXAPIChecker The rest have/create implicit dependencies between checkers and need to be handled differently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125559 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14[analyzer] Overhauling of the checker registration mechanism.Argyrios Kyrtzidis
-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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125503 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-10Add braces to quiet a gcc warning.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125309 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-10Adjust the object files to be linked in when mcount profilingRoman Divacky
is specified in the FreeBSD linker driver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125285 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-10Implement mcount profiling, enabled via -pg.Roman Divacky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125282 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09Driver/Frontend: Wire up -mregparm=.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125201 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-04Add better support for ARM EABI triples.Bob Wilson
Patch by Renato Golin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124878 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-04Driver: Fix spurious warning (from -cc1) about unused -fapple-kext on C inputs.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124875 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-04build: Add support for DISABLE_DEFAULT_STRICT_ALIASING, which does what oneDaniel Dunbar
might expect. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124848 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrorsDaniel Dunbar
CC_PRINT_OPTIONS and can be used to get some out-of-band information on header usage from a build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124751 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02Add NetBSD target support. Patch by Joerg Sonnenberger.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124736 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02Turn on -momit-leaf-frame-pointer by default on all non-Darwin platforms.Nick Lewycky
Fixes PR9121! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124718 91177308-0d34-0410-b5e6-96231b3b80d8