Commit Graph

278 Commits

Author SHA1 Message Date
Sylvestre Ledru 7ae1347fb2 clang analyzer: Fix the webpage rendering 2020-02-17 10:03:20 +01:00
Artem Dergachev b284005072 [analyzer] Add a syntactic security check for ObjC NSCoder API.
Method '-[NSCoder decodeValueOfObjCType:at:]' is not only deprecated
but also a security hazard, hence a loud check.

Differential Revision: https://reviews.llvm.org/D71728
2019-12-19 14:54:29 -08:00
Gabor Marton 4cfb91f1ef [Analyzer][Docs][NFC] Add CodeChecker to the command line tools
We add a new common html file that documents the available command line
tools. Also a new html is added for a brief description of CodeChecker,
this way complementing scan-build.

Differential Revision: https://reviews.llvm.org/D70439
2019-12-12 14:22:52 +01:00
Stephan T. Lavavej 3a7a22445e [www] More HTTPS and outdated link fixes.
Resolves D69981.
2019-11-08 14:41:27 -08:00
Artem Dergachev 5e0fb64842 [analyzer] Add test cases for the unsupported C++ constructor modeling.
Namely, for the following items:
- Handle constructors within new[];
- Handle constructors for default arguments.

Update the open projects page with a link to the newly added tests
and more hints for potential contributors.

Patch by Daniel Krupp!

Differential Revision: https://reviews.llvm.org/D69308
2019-11-07 17:15:53 -08:00
Stephan T. Lavavej 2e4f1e112d [www] Change URLs to HTTPS.
This changes most URLs in llvm's html files to HTTPS. Most changes were
search-and-replace with manual verification; some changes were manual.
For a few URLs, the websites were performing redirects or had changed
their anchors; I fixed those up manually. This consistently uses the
official https://wg21.link redirector. This also strips trailing
whitespace and fixes a couple of typos.

Fixes D69363.

There are a very small number of dead links for which I don't know any
replacements (they are equally dead as HTTP or HTTPS):

https://llvm.org/cmds/llvm2cpp.html
https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4
https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4
https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov
https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4
https://llvm.org/perf/db_default/v4/nts/22463
https://polly.llvm.org/documentation/memaccess.html
2019-10-24 13:25:15 -07:00
Mandeep Singh Grang 0cdc5dddca [Analyzer] Checker for non-determinism caused by iteration of unordered container of pointers
Summary: Added a checker for non-determinism caused by iterating unordered containers like std::unordered_set containing pointer elements.

Reviewers: NoQ, george.karpenkov, whisperity, Szelethus, baloghadamsoftware

Reviewed By: Szelethus

Subscribers: mgorny, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, jdoerfert, Charusso, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D59279

llvm-svn: 361664
2019-05-24 19:24:08 +00:00
Kristof Umann 4aa387212b [analyzer][www] Moving MoveChecker out of alpha is no longer an open project.
llvm-svn: 358877
2019-04-22 09:20:23 +00:00
Kristof Umann 85e0ff752c [analyzer] Move UninitializedObjectChecker out of alpha
Moved UninitializedObjectChecker from the 'alpha.cplusplus' to the
'optin.cplusplus' package.

Differential Revision: https://reviews.llvm.org/D58573

llvm-svn: 358797
2019-04-19 23:33:50 +00:00
Mandeep Singh Grang c0773ab6a1 [Analyzer] Checker for non-determinism caused by sorting of pointer-like elements
Summary:
Added a new category of checkers for non-determinism. Added a checker for non-determinism
caused due to sorting containers with pointer-like elements.

Reviewers: NoQ, george.karpenkov, whisperity, Szelethus

Reviewed By: NoQ, Szelethus

Subscribers: Charusso, baloghadamsoftware, jdoerfert, donat.nagy, dkrupp, martong, dblaikie, MTC, Szelethus, mgorny, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D50488

llvm-svn: 355720
2019-03-08 20:13:53 +00:00
George Karpenkov 63f9def72e [analyzer] Document RetainCountChecker behavior and annotations
Differential Revision: https://reviews.llvm.org/D57721

llvm-svn: 353229
2019-02-05 22:27:10 +00:00
James Y Knight 5d71fc5d7b Adjust documentation for git migration.
This fixes most references to the paths:
 llvm.org/svn/
 llvm.org/git/
 llvm.org/viewvc/
 github.com/llvm-mirror/
 github.com/llvm-project/
 reviews.llvm.org/diffusion/

to instead point to https://github.com/llvm/llvm-project.

This is *not* a trivial substitution, because additionally, all the
checkout instructions had to be migrated to instruct users on how to
use the monorepo layout, setting LLVM_ENABLE_PROJECTS instead of
checking out various projects into various subdirectories.

I've attempted to not change any scripts here, only documentation. The
scripts will have to be addressed separately.

Additionally, I've deleted one document which appeared to be outdated
and unneeded:
  lldb/docs/building-with-debug-llvm.txt

Differential Revision: https://reviews.llvm.org/D57330

llvm-svn: 352514
2019-01-29 16:37:27 +00:00
Gabor Horvath 6591b6ae85 [analyzer] Added a checklist to help checker authors and reviewers
Differential Revision: https://reviews.llvm.org/D52984

llvm-svn: 352470
2019-01-29 10:21:49 +00:00
Aaron Ballman 2f234cbfb0 Allow direct navigation to static analysis checker documentation through SARIF exports.
This adds anchors to all of the documented checks so that you can directly link to a check by a stable name. This is useful because the SARIF file format has a field for specifying a URI to documentation for a rule and some viewers, like CodeSonar, make use of this information. These links are then exposed through the SARIF exporter.

llvm-svn: 349812
2018-12-20 20:20:20 +00:00
Kristof Umann e0466f570e [analyzer] INT50-CPP. Do not cast to an out-of-range enumeration checker
This checker implements a solution to the "INT50-CPP. Do not cast to an
out-of-range enumeration value" rule [1].
It lands in alpha for now, and a number of followup patches are planned in order
to enable it by default.

[1] https://www.securecoding.cert.org/confluence/display/cplusplus/INT50-CPP.+Do+not+cast+to+an+out-of-range+enumeration+value

Patch by: Endre Fülöp and Alexander Zaitsev!

Differential Revision: https://reviews.llvm.org/D33672

llvm-svn: 347513
2018-11-24 12:24:27 +00:00
Kristof Umann 391b19c78a [analyzer] Put llvm.Conventions back in alpha
Interestingly, this many year old (when I last looked I remember 2010ish)
checker was committed without any tests, so I thought I'd implement them, but I
was shocked to see how I barely managed to get it working. The code is severely
outdated, I'm not even sure it has ever been used, so I'd propose to move it
back into alpha, and possibly even remove it.

Differential Revision: https://reviews.llvm.org/D53856

llvm-svn: 345990
2018-11-02 16:02:10 +00:00
George Karpenkov a5b9cb0e2c [analyzer] [www] Drop references to GC mode, which was deprecated years ago
Differential Revision: https://reviews.llvm.org/D53302

llvm-svn: 344991
2018-10-23 01:30:45 +00:00
Kristof Umann 44571096de [analyzer][www] Update alpha_checks.html
I added some missing doc. I have not developed any of these checkers, it might worth really inspecting whether I wrote something terribly incorrect.

Differential Revision: https://reviews.llvm.org/D52969

llvm-svn: 344878
2018-10-21 22:10:15 +00:00
George Karpenkov d2198a1bd0 [analyzer] [www] Minor improvements to the text in open_projects
llvm-svn: 344664
2018-10-17 01:15:53 +00:00
George Karpenkov d8aadf7824 [analyzer] [www] Updated a list of open projects
Differential Revision: https://reviews.llvm.org/D53024

llvm-svn: 344663
2018-10-17 01:06:20 +00:00
Kristof Umann 1c9870cf13 [analyzer][www] Add more useful links
Differential Revision: https://reviews.llvm.org/D52993

llvm-svn: 344031
2018-10-09 10:05:08 +00:00
Kristof Umann d6145d9849 [analyzer][UninitializedObjectChecker] New flag to ignore records based on it's fields
Based on a suggestion from @george.karpenkov.

In some cases, structs are used as unions with a help of a tag/kind field.
This patch adds a new string flag (a pattern), that is matched against the
fields of a record, and should a match be found, the entire record is ignored.

For more info refer to http://lists.llvm.org/pipermail/cfe-dev/2018-August/058906.html
and to the responses to that, especially http://lists.llvm.org/pipermail/cfe-dev/2018-August/059215.html.

Differential Revision: https://reviews.llvm.org/D51680

llvm-svn: 342220
2018-09-14 10:10:09 +00:00
Kristof Umann 2e4067226b [analyzer][UninitializedObjectChecker] Added documentation to the checker list
Differential Revision: https://reviews.llvm.org/D50904

llvm-svn: 340266
2018-08-21 10:47:19 +00:00
Artem Dergachev 8419cf307e [analyzer] Add security checks for bcmp(), bcopy(), bzero().
These functions are obsolete. The analyzer would advice to replace them with
memcmp(), memcpy() or memmove(), or memset().

Patch by Tom Rix!

Differential Revision: https://reviews.llvm.org/D41881

llvm-svn: 333326
2018-05-26 00:04:26 +00:00
Alexander Kornienko 2a8c18d991 Fix typos in clang
Found via codespell -q 3 -I ../clang-whitelist.txt
Where whitelist consists of:

  archtype
  cas
  classs
  checkk
  compres
  definit
  frome
  iff
  inteval
  ith
  lod
  methode
  nd
  optin
  ot
  pres
  statics
  te
  thru

Patch by luzpaz! (This is a subset of D44188 that applies cleanly with a few
files that have dubious fixes reverted.)

Differential revision: https://reviews.llvm.org/D44188

llvm-svn: 329399
2018-04-06 15:14:32 +00:00
Devin Coughlin c0ffd637b9 [www] Update link to analyzer's "Building a Checker in 24 hours" video
The video is now uploaded to YouTube.

llvm-svn: 326062
2018-02-26 00:39:25 +00:00
Jonathan Roelofs 2f335af5c0 Fix typo. NFC
llvm-svn: 323864
2018-01-31 12:06:15 +00:00
Jonathan Roelofs 4a205fd038 [scan-build] Add an option to skip overriding CC and CXX make vars
Autoconf and some other systems tend to add essential compilation
options to CC (e.g. -std=gnu99). When running such an auto-generated
makefile, scan-build does not need to change CC and CXX as they are
already set to use ccc-analyzer by a configure script.

Implement a new option --keep-cc as was proposed in this discussion:
http://lists.llvm.org/pipermail/cfe-dev/2013-September/031832.html

Patch by Paul Fertser!

llvm-svn: 323665
2018-01-29 16:49:34 +00:00
George Karpenkov 40eb5130a5 [Analyzer] Document a gotcha: for C++ -analyze-function requires parameters in function name
Differential Revision: https://reviews.llvm.org/D37596

llvm-svn: 314573
2017-09-30 00:07:22 +00:00
Devin Coughlin f0cadcd9f3 [Analyzer] Add support for displaying cross-file diagnostic paths in HTML output
This change adds support for cross-file diagnostic paths in html output. If the
diagnostic path is not cross-file, there is no change in the output.

Patch by Vlad Tsyrklevich!

Differential Revision: https://reviews.llvm.org/D30406

llvm-svn: 309968
2017-08-03 18:12:22 +00:00
Devin Coughlin 35b59fcaf2 [analyzer] Add missing documentation for static analyzer checkers
Some checks did not have documentation in the www/analyzer/ folder and also
some alpha checks became non-alpha.

Patch by Dominik Szabó!

Differential Revision: https://reviews.llvm.org/D33645

llvm-svn: 308242
2017-07-18 00:34:57 +00:00
Gabor Horvath 70c671a3bf [analyzer] Fix a path in the developer manual
Patch by: Reka Nikolett Kovacs

llvm-svn: 307468
2017-07-08 08:23:52 +00:00
Hiroshi Inoue c5e54ddab3 fix trivial typos in comments; NFC
llvm-svn: 307007
2017-07-03 08:49:44 +00:00
Gabor Horvath 829c6bc04a [analyzer] Extend block in critical section check with C11 and Pthread APIs.
Patch by Zoltan Daniel Torok!

Differential Revision: https://reviews.llvm.org/D29567

llvm-svn: 297461
2017-03-10 14:50:12 +00:00
Devin Coughlin 0f77429df3 [www] Fix spelling error in checker release notes.
llvm-svn: 287105
2016-11-16 14:23:41 +00:00
Devin Coughlin e88a786947 [www] Update analyzer website for release of checker-279
llvm-svn: 287063
2016-11-16 00:47:56 +00:00
Alex Lorenz 56148a1bcc [www] Fix a typo on the analyzer website
llvm-svn: 285686
2016-11-01 11:12:41 +00:00
Dominic Chen a1ab61cd8b [analyzer] Update alpha and potential checker documentation, esp. alpha.valist
Summary:
Move alpha.valist from potential to alpha since it was implemented in D15227

Cleanup some HTML comments, add a missing link

Reviewers: jordan_rose, zaks.anna

Subscribers: cfe-commits, xazax.hun

Differential Revision: https://reviews.llvm.org/D25663

llvm-svn: 284445
2016-10-18 01:15:19 +00:00
Devin Coughlin 0fb33f9690 [www] Add nullability questions to analyzer FAQ.
llvm-svn: 279330
2016-08-19 22:04:45 +00:00
Devin Coughlin 9ec2cb600b [www] Add analyzer FAQ about not releasing ivars in -dealloc.
llvm-svn: 279183
2016-08-19 01:22:50 +00:00
Artem Dergachev d73c57c328 [analyzer] Update the web manual for checker developers.
Fix the explanation of how to run tests after migration
from autotools to cmake.

Significantly expand the "debugging" section
with more interesting stuff.

Update the table of contents accordingly.

Fix paragraphs in the overview section.

Differential Revision: https://reviews.llvm.org/D22874

llvm-svn: 277029
2016-07-28 20:13:14 +00:00
Devin Coughlin 37d3264a30 [www][analyzer] Update recommended suppression mechanism for localization.
Based on feedback from Jordan Rose, make the recommended suppression function be 'static
inline'.

llvm-svn: 268768
2016-05-06 18:13:30 +00:00
Devin Coughlin b1255de973 [www][analyzer] Add FAQ about suppression of missing localization diagnostic.
llvm-svn: 268764
2016-05-06 17:51:34 +00:00
Yury Gribov a6560ebe4c [analyzer] Add --force-analyze-debug-code option to scan-build
to force debug build and hopefully enable more precise warnings.

Static Analyzer is much more efficient when built in debug mode
(-UNDEBUG) so we advice users to enable it manually. This may be
inconvenient in case of large complex projects (think about Linux
distros e.g. Android or Tizen). This patch adds a flag to scan-build
which inserts -UNDEBUG automatically.

Differential Revision: http://reviews.llvm.org/D16200

llvm-svn: 261204
2016-02-18 11:08:46 +00:00
Devin Coughlin 81f240a3ff [www] Update analyzer release notes to correct the checker-278 build date.
This is not the future.

llvm-svn: 259969
2016-02-06 00:59:14 +00:00
Devin Coughlin ca14ce0f1d [www] Update analyzer website for checker-278.
llvm-svn: 259967
2016-02-06 00:53:33 +00:00
Jonathan Roelofs e961432ae7 Create install targets for scan-build and scan-view
http://reviews.llvm.org/D14403

llvm-svn: 252474
2015-11-09 16:12:56 +00:00
Devin Coughlin 97f78cfa28 [analyzer] Update analyzer website for release of checker-277.
llvm-svn: 251591
2015-10-29 01:23:57 +00:00
Anna Zaks ac98dbc33b [analyzer] Enhance FAQ with instructions on handing unused variables.
llvm-svn: 251448
2015-10-27 20:19:38 +00:00
Jordan Rose 76a74c5617 [analyzer] Update links to developer.apple.com.
The content at the new links is /also/ a little dated, but that's our
(Apple's) problem.

llvm-svn: 247999
2015-09-18 16:12:16 +00:00