summaryrefslogtreecommitdiffstats
path: root/clang/docs/analyzer
Commit message (Collapse)AuthorAgeFilesLines
...
* [docs/analyzer] Test commit (for auto-update).Daniel Dunbar2013-01-071-0/+1
| | | | llvm-svn: 171788
* [docs/analyzer] Convert existing debug-checks document to Sphinx and link ↵Daniel Dunbar2013-01-074-90/+135
| | | | | | into doctree. llvm-svn: 171786
* analyzer: add initial Sphinx configurationSean Silva2013-01-024-0/+613
| | | | | | | | | | | This is just the output of sphinx-quickstart. Now all that is needed to begin converting the analyzer docs to reST is the server-side setup. The analyzer folks have asked me to keep this segregated from the other clang docs since the analyzer is a logically separate project (and has its own separate web page) even though it resides in the clang tree. llvm-svn: 171425
* docs: Nuke AnalyzerRegions.rst.Sean Silva2012-12-181-259/+0
| | | | | | | | | As per Ted's advice. It can be brought back from version control if needed. This also fixes a Sphinx warning. llvm-svn: 170401
* Remove old description of analyzer internals from public docs.Jordan Rose2012-12-151-0/+259
| | | | | | | | The file still exists in docs/analyzer/, but it won't be linked to from clang.llvm.org or processed as part of the default Sphinx doc-build. RegionStore has changed a lot from what Ted and Zhongxing describe here! llvm-svn: 170260
* [analyzer] Make the defaults explicit for each of the new config options.Jordan Rose2012-09-101-4/+39
| | | | | | Also, document both new inlining options in IPA.txt. llvm-svn: 163551
* [analyzer] Though C++ inlining is enabled, don't inline ctors and dtors.Jordan Rose2012-08-311-0/+20
| | | | | | | | | | | | | | | | More generally, this adds a new configuration option 'c++-inlining', which controls which C++ member functions can be considered for inlining. This uses the new -analyzer-config table, so the cc1 arguments will look like this: ... -analyzer-config c++-inlining=[none|methods|constructors|destructors] Note that each mode implies that all the previous member function kinds will be inlined as well; it doesn't make sense to inline destructors without inlining constructors, for example. The default mode is 'methods'. llvm-svn: 163004
* [analyzer] Make analyzer-ipa=dynamic-bifurcate the default.Anna Zaks2012-08-301-1/+1
| | | | | | | There are two tests regressions that come from the fact that the Retain Count checker does not cancel out inlining of ObjC methods. llvm-svn: 162950
* [analyzer] Don't inline constructors for objects allocated with operator new.Jordan Rose2012-08-271-1/+2
| | | | | | | | | | | Because the CXXNewExpr appears after the CXXConstructExpr in the CFG, we don't actually have the correct region to construct into at the time we decide whether or not to inline. The long-term fix (discussed in PR12014) might be to introduce a new CFG node (CFGAllocator) that appears before the constructor. Tracking the short-term fix in <rdar://problem/12180598>. llvm-svn: 162689
* [analyzer] Update inlining design notes for r162681.Jordan Rose2012-08-271-5/+7
| | | | llvm-svn: 162688
* [analyzer] Restructure discussion of DynamicTypeInfo and RuntimeDefinition.Jordan Rose2012-08-221-63/+65
| | | | | | | | | | Since DynamicTypeInfo is not inherently related to inlining or to dynamic calls, it makes more sense (to me) to discuss it first. Also fix some typos, massage some grammar, and (hopefully) improve precision and clarity. llvm-svn: 162365
* [analyzer] Per feedback, re-structure the docs for ExprInspection checks.Jordan Rose2012-08-221-30/+51
| | | | | | | | Also, remove the FIXME about merging -analyzer-stats and the debug.Stats checker. This would be a bad idea because simply running debug.Stats can affect the output of -analyzer-stats. llvm-svn: 162364
* [analyzer] IPA document: address Ted's review comments (pathAnna Zaks2012-08-221-27/+19
| | | | | | bifurcation) llvm-svn: 162343
* Review, comment, and reformat IPA.txt, including feedback comments.Ted Kremenek2012-08-221-53/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | Formatting includes: - removing line wraps (Emacs Cmd-Q), to make text easier to read - provide useful indentation - call out caveats and notes more explictly Stylistically, I prefer the document talk in 3rd person instead of "we". The term "we" is unambiguous, and sometimes refers to different things. I've passed over the existing paragraphs and made them speak more about specific entities that compose the analyzer and what they do (e.g., ExprEngine) instead of "we" referring to the analyzer. Further, I have substituted some vague concepts such as "state" or "program state" and replaced them with their precise implementation counterparts (e.g., ProgramState). This makes the document more technically precise throughout the entire narrative, which would sometimes use vague terms and other times precise terms. I've placed several comments within the document, which can be seen with ***TMK/COMMENT***, which indicate places that need to be enhanced or clarified, or called out as questions about intended bheavior. llvm-svn: 162338
* [analyzer] Document our debug checkers and ExprInspection's "builtins".Jordan Rose2012-08-221-0/+68
| | | | llvm-svn: 162336
* [analyzer] Set the default IPA mode to 'basic-inlining', which excludes C++.Jordan Rose2012-08-211-3/+4
| | | | | | | | | | | | | | | | | | | Under -analyzer-ipa=basic-inlining, only C functions, blocks, and C++ static member functions are inlined -- essentially, the calls that behave like simple C function calls. This is essentially the behavior in Xcode 4.4. C++ support still has some rough edges, and we don't want users to be worried about them if they download and run their own checker. (In particular, the massive number of false positives for analyzing LLVM comes from inlining defensively-written code in contexts where more aggressive assumptions are implicitly made. This problem is not unique to C++, but it is exacerbated by the higher proportion of code that lives in header files in C++.) The eventual goal is to be comfortable enough with C++ support (and simple Objective-C support) to advance to -analyzer-ipa=inlining as the default behavior. See the IPA design notes for more details. llvm-svn: 162318
* [analyzer] Add an internal reference document describing IPA and CallEvent.Jordan Rose2012-08-171-0/+96
This attempts to be a higher-level description of our inlining heuristics and decision trees than the source, where the work is spread out between ExprEngine (mostly in ExprEngineCallAndReturn.cpp) and CallEvent, with a few other classes participating as well. llvm-svn: 162073
OpenPOWER on IntegriCloud