vsavchenko added a comment.

In D92639#2433303 <https://reviews.llvm.org/D92639#2433303>, @OikawaKirie wrote:

> It is really a good idea!

Thanks 😊

> The operations that would not leave an event in the report are now clearly 
> printed.
>
> But there are three arrows that confuse me in the example report: the 
> assignment `x = 0` (x -> 0 -> x), the function call `dereference(x)` (x -> 
> dereference), and the return statement `return *x` (int -> *x). I know the 
> arrow is based on the evaluation order of the engine. But from the view of a 
> user, I think these arrows are confusing to some extent.
>
> For the first two, I think it would be better to point just the statement 
> (maybe a `CFGElement`) without inner arrows (x -> 0 -> x and x -> 
> dereference), or point to the location of the operator itself rather than the 
> BeginLoc (e.g. x -> 0 -> =). For the third one, an arrow from the function 
> name to the first `CFGElement` looks good to me. And an arrow from the 
> returned expr to the return type or to a special mark (e.g. ⬅️) can also be 
> added, together with function calls (an arrow from the callstmt to a special 
> mark, e.g. ➡️).

Sorry, for the confusion.  I did not come up with the idea of arrows and 
neither did I chose which tokens are connected by arrows.  It is an existing 
feature, and it existed for quite a long time.  The analyzer can produce 
`plist` files that contain all these locations, `plist` files are further used 
by Xcode to draw arrows.  You can see a very old example on our website: 
https://clang-analyzer.llvm.org
Essentially I took this existing information and used it in the HTML report 
generation as well.  The biggest chunk of this commit is the algorithm for 
drawing SVG curves.

> By the way, what do you think about adding arrows for data flows of specific 
> symbolic values in the future?

I'm open for many ideas in the ways how we can improve our HTML reports!  I 
thought of a popup when you hover over an arrow showing values/constraints for 
symbols actively involved in the report.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92639/new/

https://reviews.llvm.org/D92639

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to