summaryrefslogtreecommitdiffstats
path: root/clang/utils/analyzer
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] exploded-graph-rewriter: Add support for dynamic types.Artem Dergachev2019-07-011-17/+25
| | | | | | | | | Slightly cleanup emission of horizontal lines and unhardcode the title for generic maps. Differential Revision: https://reviews.llvm.org/D64041 llvm-svn: 364865
* [analyzer] exploded-graph-rewriter: Implement program point tags.Artem Dergachev2019-07-011-0/+6
| | | | | | | | Keep them on a separate line for more visibility. Differential Revision: https://reviews.llvm.org/D63965 llvm-svn: 364864
* [analyzer] exploded-graph-rewriter: Prettier location context dumps.Artem Dergachev2019-06-261-1/+2
| | | | | | Make them span wider. llvm-svn: 364365
* [analyzer] print() JSONify: Create pointersCsaba Dabis2019-06-251-2/+4
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ Reviewed By: NoQ Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63726 llvm-svn: 364271
* [analyzer] exploded-graph-rewriter: Fix escaping for bitwise-or.Artem Dergachev2019-06-251-1/+2
| | | | | | | '|' is a special character in graphviz, so it needs to be properly escaped and unescaped. llvm-svn: 364269
* [analyzer] exploded-graph-rewriter: Add support for range constraints.Artem Dergachev2019-06-251-2/+63
| | | | | | | | | | | | Diff support included. A cheap solution is implemented that treats range constraints as "some sort of key-value map", so it's going to be trivial to add support for other such maps later, such as dynamic type info. Differential Revision: https://reviews.llvm.org/D63685 llvm-svn: 364268
* [analyzer] NFC: exploded-graph-rewriter: Extract some code into functions.Artem Dergachev2019-06-251-19/+22
| | | | | | Differential Revision: https://reviews.llvm.org/D63684 llvm-svn: 364267
* [analyzer] exploded-graph-rewriter: Implement a --diff mode.Artem Dergachev2019-06-191-61/+218
| | | | | | | | | | | | | | | | | | | | | In this mode the tool would avoid duplicating the contents of the program state on every node, replacing them with a diff-like dump of changes that happened on that node. This is useful because most of the time we only interested in whether the effect of the statement was modeled correctly. A diffed graph would also be much faster to load and navigate, being much smaller than the original graph. The diffs are computed "semantically" as opposed to plain text diffs. I.e., the diff algorithm is hand-crafted separately for every state trait, taking the underlying data structures into account. This is especially nice for Environment because textual diffs would have been terrible. On the other hand, it requires some boilerplate to implement. Differential Revision: https://reviews.llvm.org/D62761 llvm-svn: 363898
* [analyzer] exploded-graph-rewriter: Fix escaping StringRegions.Artem Dergachev2019-06-191-0/+1
| | | | | | | | | | | Quotes around StringRegions are now escaped and unescaped correctly, producing valid JSON. Additionally, add a forgotten escape for Store values. Differential Revision: https://reviews.llvm.org/D63519 llvm-svn: 363897
* [analyzer] exploded-graph-rewriter: Add the missing license header!Artem Dergachev2019-06-051-0/+9
| | | | llvm-svn: 362575
* [analyzer] exploded-graph-rewriter: Initial commit.Artem Dergachev2019-06-021-0/+398
| | | | | | | | | | | This is a utility to improve readability and generally manipulate GraphViz dumps of the analysis graph. Such dumps are often huge and not only hard to read, but also often hang the viewer apps with their mere size. Such script should significantly improve debugging experience. Differential Revision: https://reviews.llvm.org/D62638 llvm-svn: 362340
* [analyzer] SATestBuild.py: Use driver for analyzing single-file tests.Artem Dergachev2019-05-292-23/+6
| | | | | | | | Don't bother coming up with a -cc1 run-line ourselves. This, in particular, gets rid of a macOS-specific code path. llvm-svn: 362009
* [analyzer] [testing] Inside CmpRuns.py output also print the filename of the ↵George Karpenkov2019-02-051-1/+22
| | | | | | | | first item in the path Differential Revision: https://reviews.llvm.org/D57783 llvm-svn: 353228
* Portable Python script across Python versionSerge Guelton2018-12-183-3/+3
| | | | | | | | Make scripts more future-proof by importing most __future__ stuff. Differential Revision: https://reviews.llvm.org/D55208 llvm-svn: 349504
* Portable Python script across Python versionSerge Guelton2018-12-182-4/+3
| | | | | | | | | | | In Python3, dict.items, dict.keys, dict.values, zip, map and filter no longer return lists, they create generator instead. The portability patch consists in forcing an extra `list` call if the result is actually used as a list. `map` are replaced by list comprehension and `filter` by filtered list comprehension. Differential Revision: https://reviews.llvm.org/D55197 llvm-svn: 349501
* Portable Python script across Python versionSerge Guelton2018-12-181-2/+2
| | | | | | | | | In Python2, division between integer yields an integer, while it yields a float in Python3. Use a combination of from __future__ import division and // operator to get a portable behavior. Differential Revision: https://reviews.llvm.org/D55204 llvm-svn: 349455
* Portable Python script across Python versionSerge Guelton2018-12-185-36/+40
| | | | | | | | Using from __future__ import print_function it is possible to have a compatible behavior of `print(...)` across Python version. Differential Revision: https://reviews.llvm.org/D55213 llvm-svn: 349454
* Portable Python script across Python versionSerge Guelton2018-12-131-2/+5
| | | | | | | | Queue module as been renamed into queue in Python3 Differential Revision: https://reviews.llvm.org/D55202 llvm-svn: 349009
* Portable Python script across versionSerge Guelton2018-12-031-5/+5
| | | | | | | | | Have all classes derive from object: that's implicitly the default in Python3, it needs to be done explicilty in Python2. Differential Revision: https://reviews.llvm.org/D55121 llvm-svn: 348127
* Portable Python script across Python versionSerge Guelton2018-12-031-1/+1
| | | | | | | | | | | | | | Python2 supports the two following equivalent construct raise ExceptionType, exception_value and raise ExceptionType(exception_value) Only the later is supported by Python3. Differential Revision: https://reviews.llvm.org/D55195 llvm-svn: 348126
* [analyzer] [testing] Compute data on path length, compute percentilesGeorge Karpenkov2018-10-231-0/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D52844 llvm-svn: 344990
* [analyzer] [tests] Hotfix: missing spaceGeorge Karpenkov2018-10-021-1/+1
| | | | llvm-svn: 343643
* [analyzer] [tests] Allow specifying entire -analyze-config on the command ↵George Karpenkov2018-10-021-14/+16
| | | | | | | | line, make sure it's always propagated Differential Revision: https://reviews.llvm.org/D52801 llvm-svn: 343636
* [analyzer] [testing] Pass through an extra argument for specifying extra ↵George Karpenkov2018-09-271-16/+22
| | | | | | | | analyzer options Differential Revision: https://reviews.llvm.org/D52585 llvm-svn: 343158
* [analyzer] Remove traces of ubigraph visualizationGeorge Karpenkov2018-09-061-76/+0
| | | | | | | | | | Ubigraph project has been dead since about 2008, and to the best of my knowledge, no one was using it. Previously, I wasn't able to launch the existing binary at all. Differential Revision: https://reviews.llvm.org/D51655 llvm-svn: 341601
* [analyzer] [tests] Do not be verbose by default when updating reference results.George Karpenkov2018-08-071-1/+1
| | | | llvm-svn: 339183
* [analyzer] [tests] Add an option for showing statistics after running tests.George Karpenkov2018-07-301-1/+3
| | | | | | Do not show statistics by default. llvm-svn: 338323
* [analyzer] [tests] Style fixes for testing harness.George Karpenkov2018-07-302-14/+14
| | | | llvm-svn: 338322
* [analyzer] [tests] Pass clang executable path to prefix-less executor scripts.George Karpenkov2018-07-021-0/+1
| | | | llvm-svn: 336124
* [analyzer] [tests] Allow the tested project to specify it's own analyzer wrapperGeorge Karpenkov2018-06-291-0/+14
| | | | llvm-svn: 336023
* [analyzer] [tests] Fix 80 column violation in SATestBuild.pyGeorge Karpenkov2018-06-291-5/+5
| | | | llvm-svn: 336022
* [analyzer] Fix string not being formatted with extra argumentsMikhail R. Gadelha2018-06-271-1/+2
| | | | | Signed-off-by: Mikhail Ramalho <mikhail.ramalho@gmail.com> llvm-svn: 335739
* [analyzer] [tests] Include statistics in tests.George Karpenkov2018-06-261-1/+7
| | | | llvm-svn: 335685
* Fix a (possible) division by zero check in the CmpRuns scriptMikhail R. Gadelha2018-05-301-1/+1
| | | | | | I missed updating the check in r333375 llvm-svn: 333529
* Introduces --stats-only option to only show changes in statistics.Mikhail R. Gadelha2018-05-281-3/+63
| | | | llvm-svn: 333375
* [analyzer] [testing] Be less verbose by default in integration testing.George Karpenkov2018-03-291-1/+1
| | | | llvm-svn: 328752
* [analyzer] [tests] Create a directory for the log fileGeorge Karpenkov2018-03-011-0/+2
| | | | llvm-svn: 326408
* [analyzer] [tests] Write to logfile instead of stdout while updatingGeorge Karpenkov2018-02-281-17/+18
| | | | | | reference results llvm-svn: 326295
* [analyzer] [tests] Update CmpRuns to write to stdout correctly in ↵George Karpenkov2018-02-132-14/+18
| | | | | | multithreaded environment llvm-svn: 325070
* [analyzer] [tests] Fix a typo in analyzer testing script.George Karpenkov2018-02-121-1/+1
| | | | | | Incorrect option instance construction. llvm-svn: 324946
* [analyzer] [tests] Fixing an error after non-atomic cherry-pickGeorge Karpenkov2018-02-091-0/+1
| | | | llvm-svn: 324762
* [analyzer] [tests] [NFC] Remove a fragile tightly-coupled component ↵George Karpenkov2018-02-092-22/+12
| | | | | | | | | | emulating parser output ...when we can just use the real parser instead. Differential Revision: https://reviews.llvm.org/D43098 llvm-svn: 324759
* [analyzer] [tests] Test different projects concurrentlyGeorge Karpenkov2018-02-082-81/+180
| | | | | | Differential Revision: https://reviews.llvm.org/D43031 llvm-svn: 324652
* [analyzer] [tests] Show function name in CmpRuns outputGeorge Karpenkov2018-02-061-3/+9
| | | | | | | | | Combined with enabled flag for stable filenames, this greatly simplifies finding the offending report. Differential Revision: https://reviews.llvm.org/D42831 llvm-svn: 324362
* [analyzer] [tests] Fix crash in SATestBuild.pyGeorge Karpenkov2018-02-021-0/+7
| | | | llvm-svn: 324114
* [analyzer] [tests] [NFC] Remove dead code from CmpRunsGeorge Karpenkov2018-02-011-21/+6
| | | | | | | | | | Indeed, "CHANGE" is not a thing yet, and we should probably not carry around dead code which does not do anything apart from confusing the reader. Differential Revision: https://reviews.llvm.org/D42819 llvm-svn: 324027
* [analyzer] [tests] Add an option to show the histogram of path differences ↵George Karpenkov2018-02-011-2/+42
| | | | | | | | between the analyzer runs Differential Revision: https://reviews.llvm.org/D42778 llvm-svn: 324021
* [analyzer] [tests] Show the number of removed/added bug reportsGeorge Karpenkov2018-02-011-0/+9
| | | | | | Differential Revision: https://reviews.llvm.org/D42718 llvm-svn: 323941
* [analyzer] Use stable filenames in analyzer testing infrastructureGeorge Karpenkov2018-01-291-0/+1
| | | | | | | | Makes finding the right file in test results easier. Differential Revision: https://reviews.llvm.org/D42445 llvm-svn: 323697
* [NFC] fix trivial typos in commentsHiroshi Inoue2018-01-221-2/+2
| | | | | | "the the" -> "the" llvm-svn: 323078
OpenPOWER on IntegriCloud