summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Extend the code-completion caching infrastructure to include globalDouglas Gregor2010-08-151-0/+4
| | | | | | | | | | | | | | | | | | declarations (in addition to macros). Each kind of declaration maps to a certain set of completion contexts, and the ASTUnit completion logic introduces the completion strings for those declarations if the actual code-completion occurs in one of the contexts where it matters. There are a few new code-completion-context kinds. Without these, certain completions (e.g., after "using namespace") would need to suppress all global completions, which would be unfortunate. Note that we don't get the priorities right for global completions, because we don't have enough type information. We'll need a way to compare types in an ASTContext-agnostic way before this can be implemented. llvm-svn: 111093
* Add a new cc1 option -fix-what-you-can which when combined with the fix-it modeNick Lewycky2010-08-131-0/+3
| | | | | | will apply all fixes even when there were other errors in the file. llvm-svn: 111020
* Just disable the hidden-visibility optimization for now by hiding it behindJohn McCall2010-08-121-0/+1
| | | | | | | | a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. llvm-svn: 110979
* Frontend: Add -target-linker-version, for specifying the version string of theDaniel Dunbar2010-08-111-1/+6
| | | | | | linker in use. llvm-svn: 110871
* Make -funroll-loops turn on loop unrolling in the optimizer insteadEric Christopher2010-08-071-3/+7
| | | | | | of just ignoring it. llvm-svn: 110525
* Removed IdempotentOperationChecker from default analysis and returned back ↵Tom Care2010-08-061-0/+3
| | | | | | | | | to a flag (-analyzer-check-idempotent-operations) - Added IdempotentOperationChecker to experimental analyses for testing purposes - Updated test cases to explictly call the checker llvm-svn: 110482
* Add -cc1 option '-unoptimized-cfg' to toggle using a CFG (for static ↵Ted Kremenek2010-08-031-0/+1
| | | | | | analysis) that doesn't prune CFG edges. llvm-svn: 110087
* Implement -fno-validate-pch at the -cc1 level, which suppresses mostDouglas Gregor2010-07-271-1/+2
| | | | | | | | | | | | | | | of the usual consistency checks used to determine when a precompiled header is incompatible with the translation unit it's being loaded into. Enable this option when loading a precompiled preamble, because the preamble loader will be performing all of this checking itself. Enable the preamble-based test now that it's working. This option is also useful for debugging Clang's PCH (<rdar://problem/7532213>). llvm-svn: 109475
* Introduce basic support for loading a precompiled preamble whileDouglas Gregor2010-07-261-0/+17
| | | | | | | | | | | | | | | | | | | | | | | reparsing an ASTUnit. When saving a preamble, create a buffer larger than the actual file we're working with but fill everything from the end of the preamble to the end of the file with spaces (so the lexer will quickly skip them). When we load the file, create a buffer of the same size, filling it with the file and then spaces. Then, instruct the lexer to start lexing after the preamble, therefore continuing the parse from the spot where the preamble left off. It's now possible to perform a simple preamble build + parse (+ reparse) with ASTUnit. However, one has to disable a bunch of checking in the PCH reader to do so. That part isn't committed; it will likely be handled with some other kind of flag (e.g., -fno-validate-pch). As part of this, fix some issues with null termination of the memory buffers created for the preamble; we were trying to explicitly NULL-terminate them, even though they were also getting implicitly NULL terminated, leading to excess warnings about NULL characters in source files. llvm-svn: 109445
* Eliminate the "minimal" and printing parser actions, which only everDouglas Gregor2010-07-261-6/+0
| | | | | | | worked for C anyway. Also kills the -cc1 options -parse-noop and -parse-print-callbacks. llvm-svn: 109392
* Introduce a new lexer function to compute the "preamble" of a file,Douglas Gregor2010-07-201-0/+3
| | | | | | | | | which is the part of the file that contains all of the initial comments, includes, and preprocessor directives that occur before any of the actual code. Added a new -print-preamble cc1 action that is only used for testing. llvm-svn: 108913
* Improved false positive rate for the idempotent operations checker and moved ↵Tom Care2010-07-161-4/+0
| | | | | | | | | | it into the default path-sensitive analysis options. - Added checks for static local variables, self assigned parameters, and truncating/extending self assignments - Removed command line option (now default with --analyze) - Updated test cases to pass with idempotent operation warnings llvm-svn: 108550
* Introduce -f{no-}spell-checking options to enable/disableDouglas Gregor2010-07-091-0/+1
| | | | | | | spell-checking. By default, spell-checking is enabled for Clang (obviously) but disabled in CIndex for performance reasons. llvm-svn: 107992
* Add a frontend option -chained-pch and don't pass an active PCH reader to ↵Sebastian Redl2010-07-091-0/+3
| | | | | | the PCH writer if it is not set, preventing creation of chained PCH files. Since the reader is so far unused, effectively no functionality change. llvm-svn: 107936
* Added a path-sensitive idempotent operation checker ↵Tom Care2010-07-061-0/+4
| | | | | | | | | | | | | | | | | | | (-analyzer-idempotent-operation). Finds idempotent and/or tautological operations in a path sensitive context, flagging operations that have no effect or a predictable effect. Example: { int a = 1; int b = 5; int c = b / a; // a is 1 on all paths } - New IdempotentOperationChecker class - Moved recursive Stmt functions in r107675 to IdempotentOperationChecker - Minor refactoring of SVal to allow checking for any integer - Added command line option for check - Added basic test cases llvm-svn: 107706
* Driver/IRgen: Add support for -momit-leaf-frame-pointer.Daniel Dunbar2010-07-011-0/+3
| | | | llvm-svn: 107367
* Implement support for -fwrapv, rdar://7221421Chris Lattner2010-06-261-4/+10
| | | | | | | | | | | | As part of this, pull together trapv handling into the same enum. This also add support for NSW multiplies. This also makes PCH disagreement on overflow behavior silent, since it really doesn't matter except for warnings and codegen (no macros get defined etc). llvm-svn: 106956
* implement support for -finstrument-functions, patch by NelsonChris Lattner2010-06-221-0/+2
| | | | | | Elhage! llvm-svn: 106507
* Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy ↵Daniel Dunbar2010-06-161-1/+13
| | | | | | Straszheim! llvm-svn: 106113
* Implement -fvisibility-inlines-hidden. <rdar://problem/7819834>Douglas Gregor2010-06-151-0/+6
| | | | llvm-svn: 106003
* Driver: Fix arg_iterator typing to reflect that it is really an iterator ↵Daniel Dunbar2010-06-111-19/+22
| | | | | | over Arg*s. llvm-svn: 105838
* Add an option -fshow-overloads=best|all to limit the number of overloadJeffrey Yasskin2010-06-111-1/+12
| | | | | | | candidates printed. We default to 'all'. At the moment, 'best' prints only the first 4 overloads, but we'll improve that over time. llvm-svn: 105815
* Add an option to specify the target C++ ABI to the frontend. Use it toCharles Davis2010-06-111-0/+7
| | | | | | select either the default Itanium ABI or the new, experimental Microsoft ABI. llvm-svn: 105804
* Frontend: Fix crashes on error paths.Daniel Dunbar2010-06-091-3/+3
| | | | llvm-svn: 105759
* Frontend: Add FrontendAction support for handling LLVM IR inputs.Daniel Dunbar2010-06-071-1/+4
| | | | | | - These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features. llvm-svn: 105582
* Frontend: Lift InputKind enumeration to top level.Daniel Dunbar2010-06-071-60/+58
| | | | llvm-svn: 105577
* Frontend: Add CodeGenOptions::SimplifyLibCalls, and eliminate LangOptions ↵Daniel Dunbar2010-06-071-0/+2
| | | | | | argument to BackendConsumer. llvm-svn: 105574
* Driver: Add clang -cc1 -mrelax-all option, which sets relaxes all ↵Daniel Dunbar2010-05-271-0/+3
| | | | | | instructions when using -integrated-as. llvm-svn: 104807
* Only enable code patterns (e.g., try { statements } catch (...) {Douglas Gregor2010-05-251-0/+4
| | | | | | statements }) in the code-completion results if explicitly requested. llvm-svn: 104637
* Driver/Frontend: Add -emit-codegen-only, for running irgen + codegen but not theDaniel Dunbar2010-05-251-0/+3
| | | | | | .s printer or .o writer. llvm-svn: 104623
* Driver: Move some argument lookup utilities into driver::ArgList.Daniel Dunbar2010-05-201-72/+43
| | | | llvm-svn: 104237
* Add option '-analyzer-max-loop', which specifies the maximum Zhongxing Xu2010-05-181-0/+1
| | | | | | number of times the analyzer will go through a loop. llvm-svn: 104007
* Add a stub frontend action for BoostCon, for next week's workshop.Douglas Gregor2010-05-071-0/+3
| | | | llvm-svn: 103258
* Make -analyzer-inline-call not a separate analysis. Instead it's a boolean Zhongxing Xu2010-05-061-0/+1
| | | | | | | flag now, and can be used with other analyses. Only turned it on for C++ methods for now. llvm-svn: 103160
* add a new -fdiagnostics-show-category=none/id/name option, giving controlChris Lattner2010-05-041-0/+18
| | | | | | | | | | | | over choice of: t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,Format String] dox to come. llvm-svn: 103056
* Introduce a limit on the depth of the macro instantiation backtraceDouglas Gregor2010-05-041-2/+13
| | | | | | | | | | | | | | printed in a diagnostic, similar to the limit we already have on the depth of the template instantiation backtrace. The macro instantiation backtrace is limited to 10 "instantiated from:" diagnostics; when it's longer than that, we'll show the first half, then say how many were suppressed, then show the second half. The limit can be changed with -fmacro-instantiation-limit=N, and turned off with N=0. This eliminates a lot of note spew with libraries making use of the Boost.Preprocess library. llvm-svn: 103014
* Bump default template instantiation depth to 1024, as required by C++0xDouglas Gregor2010-05-011-1/+1
| | | | llvm-svn: 102847
* Frontend: Tie backend verification passes to CodeGenOptions::VerifyModule,Daniel Dunbar2010-04-291-1/+0
| | | | | | instead of NDEBUG. llvm-svn: 102622
* NeXT: Clean up dispatch method policy selection.Daniel Dunbar2010-04-241-3/+23
| | | | | | | | | | - Replace -cc1 level -fobjc-legacy-dispatch with -fobjc-dispatch-method={legacy,non-legacy,mixed}. - Lift "mixed" vs "non-mixed" policy choice up to driver level, instead of being buried in CGObjCMac.cpp. - No intended functionality change. llvm-svn: 102255
* Teach clang -fixit to modify files in-place, or -fixit=suffix to create newNick Lewycky2010-04-241-20/+3
| | | | | | files with the additional suffix in the middle. llvm-svn: 102230
* Support for -fno-constant-cfstrings option - wip.Fariborz Jahanian2010-04-221-0/+4
| | | | llvm-svn: 102112
* Introduce a limit on the depth of the template instantiation backtraceDouglas Gregor2010-04-201-0/+7
| | | | | | | | | | | | | | | | we will print with each error that occurs during template instantiation. When the backtrace is longer than that, we will print N/2 of the innermost backtrace entries and N/2 of the outermost backtrace entries, then skip the middle entries with a note such as: note: suppressed 2 template instantiation contexts; use -ftemplate-backtrace-limit=N to change the number of template instantiation entries shown This should eliminate some excessively long backtraces that aren't providing any value. llvm-svn: 101882
* Add support for '-fgnu-keywords' and '-fasm' to Clang's driver. They are notChandler Carruth2010-04-171-0/+12
| | | | | | | | implemented precisely the same as GCC, but the distinction GCC makes isn't useful to represent. This allows parsing code which uses GCC-specific keywords ('asm', etc.) without parsing in a fully GNU mode. llvm-svn: 101667
* Vtable -> VTable renames across the board.Anders Carlsson2010-04-171-2/+2
| | | | llvm-svn: 101666
* clang -cc1: Add a -fno-bitfield-type-align option, for my own testing purposes.Daniel Dunbar2010-04-151-0/+9
| | | | llvm-svn: 101370
* Driver/Frontend: Add support for -mllvm, which forwards options to the LLVM ↵Daniel Dunbar2010-04-151-0/+5
| | | | | | | | option parser. - Note that this is a behavior change, previously -mllvm at the driver level forwarded to clang -cc1. The driver does a little magic to make sure that '-mllvm -disable-llvm-optzns' works correctly, but other users will need to be updated to use -Xclang. llvm-svn: 101354
* implement altivec.h and a bunch of support code, patch by Anton Yartsev!Chris Lattner2010-04-141-0/+4
| | | | llvm-svn: 101215
* Add a cc1 option to specify the max number of nodes the analyzer can explore.Zhongxing Xu2010-04-131-0/+1
| | | | llvm-svn: 101120
* add frontend support for -fdata-sections and -ffunction-sections,Chris Lattner2010-04-131-0/+7
| | | | | | patch by Sylvere Teissier! llvm-svn: 101108
* Rename -dump-record-layouts to -fdump-record-layouts now that the option ↵Anders Carlsson2010-04-101-1/+1
| | | | | | behaves like aa flag. llvm-svn: 100943
OpenPOWER on IntegriCloud