summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable -flimit-debug-info by default. Now, clang lazily emits debug info for ↵Devang Patel2011-11-041-1/+2
| | | | | | structs. Original behavior can be restored using -fno-limit-debug-info. llvm-svn: 143733
* Fix various minor issues find via unreachable code warnings, fromDouglas Gregor2011-11-021-1/+2
| | | | | | Ahmed Charles! llvm-svn: 143569
* Add an option to emulate the strange Apple gcc behavior of #pragma pack.Eli Friedman2011-11-021-0/+3
| | | | | | <rdar://problem/10374763> llvm-svn: 143527
* rename getHostTriple into getDefaultTargetTriple in clangSebastian Pop2011-11-011-2/+2
| | | | llvm-svn: 143503
* Add support for lazily linking bitcode files (using a newPeter Collingbourne2011-10-301-0/+1
| | | | | | | -mlink-bitcode-file flag), and more generally llvm::Modules, before running optimisations. llvm-svn: 143314
* Start work on SerializedDiagnosticPrinter, a new DiagnosticConsumer that ↵Ted Kremenek2011-10-291-0/+2
| | | | | | | | | | | | | | | serializes out the diagnostics for a given translation unit to a bit code file. This is a WIP. The motivation for this new DiagnosticConsumer is to provide a way for tools invoking the compiler to get its diagnostics via a libclang interface, rather than textually parsing the compiler output. This gives us flexibility to change the compiler's textual output, but have a structured data format for clients to use to get the diagnostics via a stable API. I have no tests for this, but llvm-bcanalyzer so far shows that the emitted file is well-formed. More work to follow. llvm-svn: 143259
* Make -fms-compatibility imply -fms-extensions. Fixes PR11204.Douglas Gregor2011-10-241-1/+4
| | | | llvm-svn: 142797
* Take DW_AT_comp_dir from $PWD when it's present and starts with a '/'. This isNick Lewycky2011-10-211-0/+5
| | | | | | | closer to what GCC does, except that GCC also checks that the inodes for $PWD and '.' match. llvm-svn: 142633
* Frontend: Support -iframework.Daniel Dunbar2011-10-181-0/+4
| | | | llvm-svn: 142418
* Wire up support for the controlling the extended dwarf .file directive. WithNick Lewycky2011-10-171-0/+3
| | | | | | | r142300 but not this patch, clang -S may emit .s files that assemblers other than llvm-mc can't parse. llvm-svn: 142301
* When building a module, use the macro definitions on the command lineDouglas Gregor2011-10-171-0/+17
| | | | | | | | | as part of the hash rather than ignoring them. This means we'll end up building more module variants (overall), but it allows configuration macros such as NDEBUG to work so long as they're specified via command line. More to come in this space. llvm-svn: 142187
* Frontend: Replace -nostdinc by -nostdsysteminc (which is just system includeDaniel Dunbar2011-10-111-3/+3
| | | | | | paths). The -nostdinc behavior is now -nostdsysteminc + -nobuiltininc. llvm-svn: 141691
* Revert r140009, about disabling clang's builtin in -fms-compatibility mode. Francois Pichet2011-10-101-2/+1
| | | | llvm-svn: 141577
* OpenCL: add driver/frontend support for precompiled headersPeter Collingbourne2011-10-091-0/+1
| | | | llvm-svn: 141516
* CUDA: add -fcuda-is-device flagPeter Collingbourne2011-10-061-0/+3
| | | | | | | This frontend-only flag is used by the IR generator to determine whether to filter CUDA declarations for the host or for the device. llvm-svn: 141301
* Driver & AST: Implement support for -fpack-struct and -fpack-struct= commandDaniel Dunbar2011-10-051-0/+1
| | | | | | | line options. - <rdar://problem/10120602>, PR9631 llvm-svn: 141211
* Make -fobjc-nonfragile-abi the -cc1 default, since it's theJohn McCall2011-10-021-6/+4
| | | | | | | | | | | | | | | | | | | increasingly prevailing case to the point that new features like ARC don't even support the fragile ABI anymore. This required a little bit of reshuffling with exceptions because a check was assuming that ObjCNonFragileABI was only being set in ObjC mode, and that's actually a bit obnoxious to do. Most, though, it involved a perl script to translate a ton of test cases. Mostly no functionality change for driver users, although there are corner cases with disabling language-specific exceptions that we should handle more correctly now. llvm-svn: 140957
* [analyzer] Add -analyzer-purge option which can take on multiple values, ↵Anna Zaks2011-09-301-3/+29
| | | | | | remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.) llvm-svn: 140838
* Rename Diagnostic to DiagnosticsEngine as per issue 5397David Blaikie2011-09-251-10/+10
| | | | llvm-svn: 140478
* Switch assert(0/false) llvm_unreachable.David Blaikie2011-09-231-2/+2
| | | | llvm-svn: 140367
* Add support for CPATH and friends.Benjamin Kramer2011-09-221-27/+30
| | | | | | | | | | | | This moves the existing code for CPATH into the driver and adds the environment lookup and path splitting there. The paths are then passed down to cc1 with -I options (CPATH), added after the normal user-specified include dirs. Language specific paths are passed via -LANG-isystem and the actual filtering is performed in the frontend. I tried to match GCC's behavior as close as possible Fixes PR8971. llvm-svn: 140341
* In the OpenCL mode, the AltiVec mode must be off and checks must be strictTobias Grosser2011-09-211-2/+2
| | | | | | | | | | OpenCL is different from AltiVec in the way it supports vector literals. OpenCL is strict with regards to semantic checks. For example, implicit conversions and explicit casts between vectors of different types are disallowed. Fixes PR10975. Submitted by: Anton Lokhmotov <Anton.lokhmotov@gmail.com> llvm-svn: 140270
* Do not use builtin includes if -fms-compatibility is specified. Some MSVC ↵Francois Pichet2011-09-191-1/+2
| | | | | | header files have the same name as clang's builtins, this creates clash. llvm-svn: 140009
* Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear ↵Francois Pichet2011-09-171-2/+2
| | | | | | | | that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag. Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag. llvm-svn: 139987
* As per discussion with Doug Gregor on the IRC channel, introduce a new ↵Francois Pichet2011-09-171-0/+1
| | | | | | | | | | | | compiler switch: -fms-compatility. Microsoft specific tweaking will now fall into 2 categories: - fms-extension: Microsoft specific extensions that should never change the meaning of an otherwise well formed code. Currently map to LangOptions::Microsoft. (To be clearer, I am planning to change the name to LangOptions::MicrosoftExt). - fms-compatibility: Really a MSVC emulation mode. Map to LangOptions::MicrosoftMode. Can change the meaning of an otherwise standard conformant program. llvm-svn: 139978
* Add an experimental flag -fauto-module-import that automatically turnsDouglas Gregor2011-09-151-0/+1
| | | | | | | #include or #import direcctives of framework headers into module imports of the corresponding framework module. llvm-svn: 139860
* Eliminate the unused -create-module cc1-level optionDouglas Gregor2011-09-151-3/+0
| | | | llvm-svn: 139827
* Encode the module hash in base-36, to reduce the length of the strings a bitDouglas Gregor2011-09-141-2/+6
| | | | llvm-svn: 139696
* For modules, use a hash of the compiler version, language options, andDouglas Gregor2011-09-131-0/+82
| | | | | | | | | target triple to separate modules built under different conditions. The hash is used to create a subdirectory in the module cache path where other invocations of the compiler (with the same version, language options, etc.) can find the precompiled modules. llvm-svn: 139662
* Switch LangOptions over to a .def file that describes header of theDouglas Gregor2011-09-131-10/+10
| | | | | | | | | | language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs. AST serialization changes are next up. llvm-svn: 139605
* Introduce a cc1-level option to provide the path to the module cache,Douglas Gregor2011-09-121-2/+7
| | | | | | | | where the compiler will look for module files. Eliminates the egregious hack where we looked into the header search paths for modules. llvm-svn: 139538
* Treat the weak export of block runtime symbols as a deployment-targetJohn McCall2011-09-091-0/+3
| | | | | | | | feature akin to the ARC runtime checks. Removes a terrible hack where IR gen needed to find the declarations of those symbols in the translation unit. llvm-svn: 139404
* Remove the -import-module option. It's no longer usefulDouglas Gregor2011-08-271-15/+0
| | | | llvm-svn: 138681
* [driver] Add -mglobal-merge/-mno-global-merge machine options to ↵Chad Rosier2011-08-261-0/+3
| | | | | | | | | enable/disable merging of globals during codegen. Fixes <rdar://problem/10017909>. llvm-svn: 138612
* Eliminate the -chained-pch flag and all of the frontend and libclang options ↵Douglas Gregor2011-08-251-3/+0
| | | | | | associated with it. Chained PCH is the only way to build a PCH file that includes another PCH file llvm-svn: 138597
* Introduce a -cc1 option "-emit-module", that creates a binary moduleDouglas Gregor2011-08-251-0/+3
| | | | | | | | | from the given source. -emit-module behaves similarly to -emit-pch, except that Sema is somewhat more strict about the contents of -emit-module. In the future, there are likely to be more interesting differences. llvm-svn: 138595
* Accept -x objc++-cpp-output as an alias for -x objective-c++-cpp-outputNico Weber2011-08-131-0/+1
| | | | | | | This is the ObjC++ version of r129201. It's for example needed to use ccache with clang. llvm-svn: 137560
* Wire up -import-module to run ReadAST for each module loaded.Jonathan D. Turner2011-08-051-0/+10
| | | | llvm-svn: 136987
* Really remove FlatStoreManager and BasicStoreManager, this time from the ↵Ted Kremenek2011-07-281-1/+1
| | | | | | driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge. llvm-svn: 136422
* Introduce the "-index-header-map" option, to give special semanticsDouglas Gregor2011-07-281-10/+37
| | | | | | | for quoted header lookup when dealing with not-yet-installed frameworks. Fixes <rdar://problem/9824020>. llvm-svn: 136331
* remove unneeded llvm:: namespace qualifiers on some core types now that ↵Chris Lattner2011-07-231-17/+17
| | | | | | | | LLVM.h imports them into the clang namespace. llvm-svn: 135852
* [arcmt] Add some additional driver flags to optionally emit or save the ↵Argyrios Kyrtzidis2011-07-191-0/+10
| | | | | | | | | | | pre-migration ARC errors. -arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else -arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file rdar://9791454 llvm-svn: 135491
* In debugger mode, make ObjC message sends to unknown selectors returnJohn McCall2011-07-131-0/+3
| | | | | | | | | | __unknown_anytype, and rewrite such message sends correctly. I had to bite the bullet and actually add a debugger support mode for this one, which is a bit unfortunate, but there really isn't anything else I could imagine doing; this is clearly just debugger-specific behavior. llvm-svn: 135051
* Implement -MG. Fixes PR9613Peter Collingbourne2011-07-121-0/+1
| | | | llvm-svn: 134996
* [arcmt] Introduce new '-ccc-arcmt-migrate <path>' ARC migration driver option.Argyrios Kyrtzidis2011-07-091-1/+13
| | | | | | | | | | | | | | | | | | | | This is a new mode of migration, where we avoid modifying the original files but we emit temporary files instead. <path> will be used to keep migration process metadata. Currently the temporary files that are produced are put in the system's temp directory but we can put them in the <path> if is necessary. Also introduce new ARC migration functions in libclang whose only purpose, currently, is to accept <path> and provide pairs of original file/transformed file to map from the originals to the files after transformations are applied. Finally introduce the c-arcmt-test utility that exercises the new libclang functions, update arcmt-test, and add tests for the whole process. rdar://9735086. llvm-svn: 134844
* Remove BoostCon-specific code from Clang. FWIW, I'm a fan of things like ↵Jonathan D. Turner2011-07-071-3/+0
| | | | | | this living in a separate branch. llvm-svn: 134649
* Call objc_terminate() instead of abort() when a cleanup throws anJohn McCall2011-07-061-0/+3
| | | | | | | exception in Objective-C; in Objective-C++ we still use std::terminate(). This is only available in very recent runtimes. llvm-svn: 134456
* Change the driver's logic about Objective-C runtimes: abstract out aJohn McCall2011-07-061-4/+8
| | | | | | | | | | | | structure to hold inferred information, then propagate each invididual bit down to -cc1. Separate the bits of "supports weak" and "has a native ARC runtime"; make the latter a CodeGenOption. The tool chain is still driving this decision, because it's the place that has the required deployment target information on Darwin, but at least it's better-factored now. llvm-svn: 134453
* Use existing -fcatch-undefined-behavior option,Fariborz Jahanian2011-06-291-3/+0
| | | | | | replacing -freset-local-blocks. // rdar://9227352 llvm-svn: 134082
* Under a compiler flag, -freset-local-blocks,Fariborz Jahanian2011-06-281-0/+3
| | | | | | | wipe out stack blocks when they go out of scope. // rdar://9227352 llvm-svn: 134045
OpenPOWER on IntegriCloud