aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-10-22Substantially revise how clang computes the visibility of a declaration toJohn McCall1-6/+6
more closely parallel the computation of linkage. This gets us to a state much closer to what gcc emits, modulo bugs, which will undoubtedly arise in abundance. llvm-svn: 117147
2010-10-21Reorganize predefined macros for all Windows targets.Michael J. Spencer1-0/+3
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-21Fix Whitespace.Michael J. Spencer1-13/+13
llvm-svn: 116990
2010-10-18"Fix" bogus idempotent operations warning due to loop unrolling not ↵Ted Kremenek1-1/+1
unrolling enough loops to show that an invariant doesn't hold. This fix is to increase the loop unrolling count to 4, which experiments show doesn't typically impact analysis time. The real fix is to modify the IdempotentOperationsChecker to suppress warnings where an analysis point could be preceded by a point where we gave up due to loop unrolling. llvm-svn: 116769
2010-10-14Wire up the -fstrict-aliasing and -fno-strict-aliasing optionsDan Gohman1-0/+1
to CodeGenOption flags. llvm-svn: 116530
2010-10-14Introduce command line option -error-on-deserialized-decl that is ↵Argyrios Kyrtzidis1-0/+6
accompanied by a name and emits an error if a declaration with this name is deserialized from PCH. This is for testing, to make sure that we don't deserialize stuff needlessly. llvm-svn: 116505
2010-10-14Introduce command line option -dump-deserialized-decls which is used to ↵Argyrios Kyrtzidis1-0/+1
print the PCH decls that got deserialized, for testing purposes. llvm-svn: 116503
2010-10-11Eliminate the (de-)serialization of code completion results, now thatDouglas Gregor1-4/+0
libclang does not support out-of-process code completion. llvm-svn: 116253
2010-10-11Eliminate -fdiagnostics-binary and all of the infrastructure forDouglas Gregor1-3/+0
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-11Declare argv parameters as const char* const* instead of to char** to ↵Axel Naumann1-2/+2
clarify that they are not modified, and to allow for string literals as arguments. llvm-svn: 116200
2010-10-08Implement -fshort-enums (rdar://8490496).Argyrios Kyrtzidis1-0/+1
llvm-svn: 116020
2010-09-30Introduce -flimit-debug-info.Devang Patel1-0/+1
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-30Added two new command line arguments:Marcin Swiderski1-0/+2
-cfg-add-implicit-dtors - sets CFG::BuildOptions::AddImplicitDtors for AnalysisCosumer to true, -cfg-add-initializers - sets CFG::BuildOptions::AddInitializers for AnalysisCosumer to true. llvm-svn: 115142
2010-09-17Add a -ftrapv-handler= option which allows a handler to invoke instead of ↵David Chisnall1-2/+11
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-10Added AnalyzerStatsChecker, a path sensitive check that reports visitation ↵Tom Care1-0/+3
statistics about analysis. Running clang with the -analyzer-stats flag will emit warnings containing the information. We can then run a postanalysis script to take this data and give useful information about how much the analyzer missed in a project. llvm-svn: 113568
2010-09-09Frontend: Add -cxx-system-include option which can be used to specify anDaniel Dunbar1-0/+6
explicit list for the C++ system include directories at the -cc1 level, as an alternative to the horrible AddDefaultCPlusPlusIncludePaths(). llvm-svn: 113505
2010-09-02Add support for Borland extensions via option -fborland-extensionsDawn Perchik1-0/+3
(original patch r112791 was reverted due to a bug). llvm-svn: 112915
2010-09-02Reverting rev 112791 - apparently -fborland-extensions is on all the time?!Dawn Perchik1-3/+0
llvm-svn: 112797
2010-09-02Add support for Borland extensions via option -fborland-extensionsDawn Perchik1-0/+3
llvm-svn: 112791
2010-08-30Straighten out target triples provided on the command lineDuncan Sands1-1/+2
before using them. llvm-svn: 112468
2010-08-24Frontend: Add basic -H support.Daniel Dunbar1-2/+5
- I didn't implement the GCC "multiple include guard" detection parts, because it doesn't seem useful or obvious. llvm-svn: 111983
2010-08-24correct the -isystem option to not add the -isysroot path. Only the weirdChris Lattner1-6/+7
-iwithsysroot flag should do that. This fixes rdar://8345942 llvm-svn: 111979
2010-08-24Implement -iwithsysroot, an apple extension which is a close cousin of -isystem.Chris Lattner1-1/+1
Instead of implementing -isystem, I accidentally implemented this cousin. Next up is to implement -isystem right. llvm-svn: 111966
2010-08-22Abstract out member-pointer creation. I'm really unhappy about the currentJohn McCall1-6/+4
duplication between the constant and non-constant paths in all of this. Implement ARM ABI semantics for member pointer constants and conversion. llvm-svn: 111772
2010-08-19Add machine-parseable Fix-It output as part of diagnostics, under theDouglas Gregor1-0/+3
flag -fdiagnostics-parseable-fixits, from Eelis van der Weegen! llvm-svn: 111557
2010-08-18Rename the ASTReader header files.Sebastian Redl1-1/+1
llvm-svn: 111474
2010-08-18Rename PCHReader to ASTReader.Sebastian Redl1-1/+1
llvm-svn: 111467
2010-08-17Reintroduce the serialization library, with fixed dependencies.Sebastian Redl1-1/+1
llvm-svn: 111279
2010-08-17Revert Sebastian's build-breaking patch.Douglas Gregor1-1/+1
llvm-svn: 111265
2010-08-17Create a new Serialization module that contains all the PCH code, and will ↵Sebastian Redl1-1/+1
contain all the module code in the future. Update the Makefiles, CMake projects and the Xcode project. I hope I did everything right for Xcode. No functionality change. llvm-svn: 111258
2010-08-16Add two options for playing with modules.Sebastian Redl1-0/+8
llvm-svn: 111166
2010-08-15Extend the code-completion caching infrastructure to include globalDouglas Gregor1-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
2010-08-13Add a new cc1 option -fix-what-you-can which when combined with the fix-it modeNick Lewycky1-0/+3
will apply all fixes even when there were other errors in the file. llvm-svn: 111020
2010-08-12Just disable the hidden-visibility optimization for now by hiding it behindJohn McCall1-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
2010-08-11Frontend: Add -target-linker-version, for specifying the version string of theDaniel Dunbar1-1/+6
linker in use. llvm-svn: 110871
2010-08-07Make -funroll-loops turn on loop unrolling in the optimizer insteadEric Christopher1-3/+7
of just ignoring it. llvm-svn: 110525
2010-08-06Removed IdempotentOperationChecker from default analysis and returned back ↵Tom Care1-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
2010-08-03Add -cc1 option '-unoptimized-cfg' to toggle using a CFG (for static ↵Ted Kremenek1-0/+1
analysis) that doesn't prune CFG edges. llvm-svn: 110087
2010-07-27Implement -fno-validate-pch at the -cc1 level, which suppresses mostDouglas Gregor1-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
2010-07-26Introduce basic support for loading a precompiled preamble whileDouglas Gregor1-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
2010-07-26Eliminate the "minimal" and printing parser actions, which only everDouglas Gregor1-6/+0
worked for C anyway. Also kills the -cc1 options -parse-noop and -parse-print-callbacks. llvm-svn: 109392
2010-07-20Introduce a new lexer function to compute the "preamble" of a file,Douglas Gregor1-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
2010-07-16Improved false positive rate for the idempotent operations checker and moved ↵Tom Care1-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
2010-07-09Introduce -f{no-}spell-checking options to enable/disableDouglas Gregor1-0/+1
spell-checking. By default, spell-checking is enabled for Clang (obviously) but disabled in CIndex for performance reasons. llvm-svn: 107992
2010-07-09Add a frontend option -chained-pch and don't pass an active PCH reader to ↵Sebastian Redl1-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
2010-07-06Added a path-sensitive idempotent operation checker ↵Tom Care1-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
2010-07-01Driver/IRgen: Add support for -momit-leaf-frame-pointer.Daniel Dunbar1-0/+3
llvm-svn: 107367
2010-06-26Implement support for -fwrapv, rdar://7221421Chris Lattner1-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
2010-06-22implement support for -finstrument-functions, patch by NelsonChris Lattner1-0/+2
Elhage! llvm-svn: 106507
2010-06-16Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy ↵Daniel Dunbar1-1/+13
Straszheim! llvm-svn: 106113