[all-commits] [llvm/llvm-project] 97bcaf: [analyzer] Add control flow arrows to the analyzer...

Valeriy Savchenko via All-commits all-commits at lists.llvm.org
Mon Aug 2 09:31:35 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 97bcafa28deb95ad32f83fe339d78454d899ca1b
      https://github.com/llvm/llvm-project/commit/97bcafa28deb95ad32f83fe339d78454d899ca1b
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-08-02 (Mon, 02 Aug 2021)

  Changed paths:
    M clang/include/clang/Analysis/PathDiagnostic.h
    M clang/lib/Rewrite/HTMLRewrite.cpp
    M clang/lib/StaticAnalyzer/Core/BugReporter.cpp
    M clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
    A clang/test/Analysis/html_diagnostics/control-arrows.cpp

  Log Message:
  -----------
  [analyzer] Add control flow arrows to the analyzer's HTML reports

This commit adds a very first version of this feature.
It is off by default and has to be turned on by checking the
corresponding box.  For this reason, HTML reports still keep
control notes (aka grey bubbles).

Further on, we plan on attaching arrows to events and having all arrows
not related to a currently selected event barely visible.  This will
help with reports where control flow goes back and forth (eg in loops).
Right now, it can get pretty crammed with all the arrows.

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


  Commit: 9e02f58780ab8734e5d27a0138bd477d18ae64a1
      https://github.com/llvm/llvm-project/commit/9e02f58780ab8734e5d27a0138bd477d18ae64a1
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-08-02 (Mon, 02 Aug 2021)

  Changed paths:
    M clang/lib/Rewrite/HTMLRewrite.cpp
    M clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
    M clang/test/Analysis/html_diagnostics/control-arrows.cpp

  Log Message:
  -----------
  [analyzer] Highlight arrows for currently selected event

In some cases, when the execution path of the diagnostic
goes back and forth, arrows can overlap and create a mess.
Dimming arrows that are not relevant at the moment, solves this issue.
They are still visible, but don't draw too much attention.

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


Compare: https://github.com/llvm/llvm-project/compare/ea23f7fce5de...9e02f58780ab


More information about the All-commits mailing list