Page MenuHomePhabricator

Charusso (Csaba Dabis)
Research

Projects

User does not belong to any projects.

User Details

User Since
Dec 25 2017, 5:51 AM (72 w, 6 d)

Recent Activity

Fri, May 17

Charusso added inline comments to D61912: [analyzer] print() JSONify: Store implementation.
Fri, May 17, 4:08 PM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

PS: I have no idea why the macro note is purple, but because the entire HTML printing is broken I hope you saw nothing.

Fri, May 17, 3:43 PM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

Thanks you! I hope this feature will be useful to see what is behind the scenes and create better reports.

Fri, May 17, 3:40 PM · Restricted Project
Charusso updated the diff for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.
  • Add extra state transition indices to every pop-up note.
Fri, May 17, 3:37 PM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

@NoQ could you share your final thoughts here, please? I would like to move forward and never look back.

Fri, May 17, 2:40 PM · Restricted Project
Charusso added a comment to D61912: [analyzer] print() JSONify: Store implementation.

PS: Outcome of program state printing could be found in D62087 which is very similar to your idea in D61677.

Fri, May 17, 2:39 PM · Restricted Project
Charusso added a parent revision for D62087: [analyzer] print() JSONify: Program state implementation: D62086: [analyzer] print() JSONify: Checker messages implementation.
Fri, May 17, 2:37 PM · Restricted Project
Charusso created D62087: [analyzer] print() JSONify: Program state implementation.
Fri, May 17, 2:37 PM · Restricted Project
Charusso added a child revision for D62086: [analyzer] print() JSONify: Checker messages implementation: D62087: [analyzer] print() JSONify: Program state implementation.
Fri, May 17, 2:37 PM · Restricted Project
Charusso added a parent revision for D62086: [analyzer] print() JSONify: Checker messages implementation: D62085: [analyzer] print() JSONify: Constructing objects implementation.
Fri, May 17, 2:35 PM · Restricted Project
Charusso added a child revision for D62085: [analyzer] print() JSONify: Constructing objects implementation: D62086: [analyzer] print() JSONify: Checker messages implementation.
Fri, May 17, 2:35 PM · Restricted Project
Charusso created D62086: [analyzer] print() JSONify: Checker messages implementation.
Fri, May 17, 2:34 PM · Restricted Project
Charusso added a parent revision for D62085: [analyzer] print() JSONify: Constructing objects implementation: D62083: [analyzer] print() JSONify: Type information implementation.
Fri, May 17, 2:33 PM · Restricted Project
Charusso added a child revision for D62083: [analyzer] print() JSONify: Type information implementation: D62085: [analyzer] print() JSONify: Constructing objects implementation.
Fri, May 17, 2:33 PM · Restricted Project
Charusso created D62085: [analyzer] print() JSONify: Constructing objects implementation.
Fri, May 17, 2:32 PM · Restricted Project
Charusso added a parent revision for D62083: [analyzer] print() JSONify: Type information implementation: D62082: [analyzer] print() JSONify: Constraints implementation.
Fri, May 17, 2:30 PM · Restricted Project
Charusso added a child revision for D62082: [analyzer] print() JSONify: Constraints implementation: D62083: [analyzer] print() JSONify: Type information implementation.
Fri, May 17, 2:30 PM · Restricted Project
Charusso added a child revision for D62081: [analyzer] print() JSONify: Environment implementation: D62082: [analyzer] print() JSONify: Constraints implementation.
Fri, May 17, 2:30 PM · Restricted Project
Charusso added a parent revision for D62082: [analyzer] print() JSONify: Constraints implementation: D62081: [analyzer] print() JSONify: Environment implementation.
Fri, May 17, 2:30 PM · Restricted Project
Charusso created D62083: [analyzer] print() JSONify: Type information implementation.
Fri, May 17, 2:29 PM · Restricted Project
Charusso created D62082: [analyzer] print() JSONify: Constraints implementation.
Fri, May 17, 2:29 PM · Restricted Project
Charusso created D62081: [analyzer] print() JSONify: Environment implementation.
Fri, May 17, 2:29 PM · Restricted Project
Charusso added a parent revision for D62081: [analyzer] print() JSONify: Environment implementation: D61912: [analyzer] print() JSONify: Store implementation.
Fri, May 17, 2:29 PM · Restricted Project
Charusso added a child revision for D61912: [analyzer] print() JSONify: Store implementation: D62081: [analyzer] print() JSONify: Environment implementation.
Fri, May 17, 2:29 PM · Restricted Project
Charusso added a comment to D61912: [analyzer] print() JSONify: Store implementation.

Thanks for the accept! Sorry for the extra noise but it came out it is tricky to create valid JSON for each sub-print and we do not need it for now. I wanted to create the most compact and necessary JSON without touching the JsonSupport.h.

Fri, May 17, 2:23 PM · Restricted Project
Charusso updated the diff for D61912: [analyzer] print() JSONify: Store implementation.
  • Better header handling.
  • Less JSON.
Fri, May 17, 2:21 PM · Restricted Project

Thu, May 16

Charusso accepted D61816: [CFG] [analyzer] pr41300: Add a branch to skip virtual base initializers when they are handled by the superclass..

I do not like to have a variable storing/mention one stuff named in plural. It is your decision as it is just my personal feeling.

Thu, May 16, 12:06 AM · Restricted Project

Wed, May 15

Charusso added inline comments to D61912: [analyzer] print() JSONify: Store implementation.
Wed, May 15, 1:25 PM · Restricted Project
Charusso planned changes to D61912: [analyzer] print() JSONify: Store implementation.

PrettyStackTraceLocationContext.h definitely needs the default print() method (may other users too). Even it is a little bit silly but I think we have to keep them and create printJSON(). What do you think?

Wed, May 15, 1:18 PM · Restricted Project
Charusso updated the diff for D61912: [analyzer] print() JSONify: Store implementation.
  • More JSONify.
Wed, May 15, 1:18 PM · Restricted Project

Tue, May 14

Charusso accepted D61817: [analyzer] Add a prunable note for skipping virtual base initializers in subclasses..
Tue, May 14, 9:42 PM · Restricted Project
Charusso accepted D61817: [analyzer] Add a prunable note for skipping virtual base initializers in subclasses..

What about "the most derived class" or "a superclass" instead of "the superclass"? (https://en.cppreference.com/w/cpp/language/derived_class)
May the sentence is a little bit too long. It would be cool to say "by A" or something more simple and precise.

Tue, May 14, 1:11 PM · Restricted Project
Charusso created D61912: [analyzer] print() JSONify: Store implementation.
Tue, May 14, 12:41 PM · Restricted Project

Mon, May 13

Charusso added a comment to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.

PS: I mean we do not write it out and I am not sure whether it is the first/last of the ClusterBindings or what.

Mon, May 13, 2:32 PM · Restricted Project
Charusso added a comment to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
In D61677#1497130, @NoQ wrote:
{ "trait" : "Store", "items" : [
  { "cluster" : "SymRegion{reg_$2<x>}", "items" : [
    { "kind" : "Direct", "offset" : 0, "value" : "reg_$0<a> + reg_$1<b>" },
Mon, May 13, 2:25 PM · Restricted Project

Thu, May 9

Charusso abandoned D61678: [analyzer] ExplodedGraph: printDiff(): Store implementation.

Abandoned like its parent revision.

Thu, May 9, 2:44 PM · Restricted Project
Charusso abandoned D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
In D61677#1497292, @NoQ wrote:

I propose neither implementing ProgramState::printJSON() nor ProgramState::printDiff() but instead replacing the current implementation of ProgramState::print()
Then i propose making a tool that replaces JSON curly braces with GraphViz's HTML tags for prettier looks.

I see, now I get it. Thanks for the idea! Sadly Graphviz has a very limited HTML usage so this tool has to do a lot more. I like that idea to have machine code inside the graph so I can parse it and modify it whatever I like without any extra overhead of very complex LLVM file-handling/command execution. I will mention the source of these ideas in the actual patch.

Thu, May 9, 2:44 PM · Restricted Project
Charusso added a comment to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.

In addition: If I am right you would use the CTU-level more complex JSON format with tons of additional stuff compared to the current raw ugly DOT dump. So forget about the current DOT as it useless compared to the JSON and convert the JSON into DOT so to SVG and HTML?

Thu, May 9, 1:59 PM · Restricted Project
Charusso added a comment to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
In D61677#1497130, @NoQ wrote:
  • Completely screw current program point and program state dumps and transform them into JSON dumps entirely while keeping it relatively human-readable when it comes to whitespace. This isn't much less readable than the existing dumps but it's also fully machine-readable, and we don't have to maintain two separate dumping facilities.

Would you introduce printJSON() instead of printDiff() in every graph-printer method then just dumping it out into a file? I do not see any generic way.

Thu, May 9, 1:43 PM · Restricted Project

Wed, May 8

Charusso added inline comments to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
Wed, May 8, 2:38 PM · Restricted Project
Charusso planned changes to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.

Thanks for the ideas! I am looking forward for that JSON formatting as it sounds good.

Wed, May 8, 2:04 PM · Restricted Project
Charusso planned changes to D61678: [analyzer] ExplodedGraph: printDiff(): Store implementation.

This patch is the sample for every other printDiff() functions, so let us brainstorming. I think it is useless to write out if there is no new information, also it comes with an ugly code. What do you guys think?

Wed, May 8, 6:55 AM · Restricted Project
Charusso added inline comments to D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
Wed, May 8, 6:46 AM · Restricted Project
Charusso added a parent revision for D61678: [analyzer] ExplodedGraph: printDiff(): Store implementation: D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
Wed, May 8, 6:37 AM · Restricted Project
Charusso added a child revision for D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation: D61678: [analyzer] ExplodedGraph: printDiff(): Store implementation.
Wed, May 8, 6:37 AM · Restricted Project
Charusso created D61678: [analyzer] ExplodedGraph: printDiff(): Store implementation.
Wed, May 8, 6:37 AM · Restricted Project
Charusso created D61677: [analyzer] ExplodedGraph: printDiff(): ProgramState implementation.
Wed, May 8, 6:26 AM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

PS: I do not like that fraction stuff as it is difficult to read, ugly and limited.

Wed, May 8, 5:57 AM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

I have not got better idea to just index over each sub-state. Example at line 1052:

Wed, May 8, 5:51 AM · Restricted Project
Charusso updated the diff for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.
  • Sub-state indexing.
Wed, May 8, 5:49 AM · Restricted Project

Sat, May 4

Charusso accepted D61545: [analyzer] Fix a crash in RVO from within blocks..

I think the entire LocationContext stuff is a huge design issue, and you used its functionality without any hack. If you would rename the getStackFrame to getNextStackFrame or something, it is clear it is not a getter and traversing every frame until the top-frame.

Sat, May 4, 12:05 AM · Restricted Project

Wed, May 1

Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

PS: That offset-by-one index + arrow confuse me more, so that I am not sure about that improvement being a useful one.

Wed, May 1, 8:35 PM · Restricted Project
Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

Thanks for the review!

Wed, May 1, 8:22 PM · Restricted Project
Charusso updated the diff for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

index → index+1

Wed, May 1, 8:22 PM · Restricted Project

Mon, Apr 29

Charusso accepted D61285: [analyzer] SmartPtrModeling: Fix a null dereference..

When I see ->* I go mad, but we should handle unknown stuff, cool patch.

Mon, Apr 29, 4:57 PM · Restricted Project

Sun, Apr 28

Charusso accepted D61051: [analyzer] Treat functions without runtime branches as "small"..

Great patch! There is only a design problem:
You have negated every isSmall() condition looks like you could write isLarge() instead but there is no connection between these functions.
Could you rename or redesign them? The following would be cool: isLarge() iff !isSmalll and isSmall() iff !isLarge().

Sun, Apr 28, 10:54 PM · Restricted Project

Sat, Apr 27

Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

The indexing has a problem: zero index would be possible and usually you would match the gray PathDiagnostic bubbles with these notes.

Sat, Apr 27, 8:02 PM · Restricted Project
Charusso updated the diff for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

Fix multiple reports at the same range:

  • Plain text became a table.
  • Styling is the same as the bubbles.
  • mrange (whatever it means) - the grey highlight cannot overlap pop-up ranges.
Sat, Apr 27, 7:55 PM · Restricted Project

Wed, Apr 24

Charusso added a comment to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

Feature request test is in D61060.

Wed, Apr 24, 5:06 AM · Restricted Project
Charusso added a child revision for D61060: [analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false': D58199: [analyzer] ConditionBRVisitor: Remove duplicated code.
Wed, Apr 24, 4:58 AM · Restricted Project
Charusso edited parent revisions for D58199: [analyzer] ConditionBRVisitor: Remove duplicated code, added: 1; removed: 1.
Wed, Apr 24, 4:58 AM · Restricted Project
Charusso removed a child revision for D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information: D58199: [analyzer] ConditionBRVisitor: Remove duplicated code.
Wed, Apr 24, 4:58 AM · Restricted Project
Charusso added a child revision for D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information: D61060: [analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'.
Wed, Apr 24, 4:55 AM · Restricted Project
Charusso added a parent revision for D61060: [analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false': D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information.
Wed, Apr 24, 4:55 AM · Restricted Project
Charusso created D61060: [analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'.
Wed, Apr 24, 4:54 AM · Restricted Project
Charusso updated the diff for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.
  • add-pop-up-notes=true
  • Revert clang-format.
Wed, Apr 24, 4:47 AM · Restricted Project

Mon, Apr 22

Charusso planned changes to D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.

@Szelethus, I will revert it.

Mon, Apr 22, 10:10 AM · Restricted Project

Apr 17 2019

Charusso accepted D60845: [VerifyDiagnosticConsumer] Document -verify=<prefixes> in doxygen.

Thanks you!

Apr 17 2019, 4:50 PM · Restricted Project

Apr 15 2019

Charusso accepted D60732: [analyzer] NFC: Use -verify=... in MoveChecker tests..

I think this functionality is unused because you would split the file into six to reduce the overhead/scroll and that is it.

Apr 15 2019, 3:00 PM · Restricted Project, Restricted Project

Apr 14 2019

Charusso added a comment to D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information.

Thanks you @NoQ for the great idea!

Apr 14 2019, 9:25 AM · Restricted Project
Charusso abandoned D59157: [analyzer] ConditionBRVisitor: better readability in comparisons.

Treat the reports as it is.

Apr 14 2019, 9:25 AM · Restricted Project
Charusso abandoned D59155: [analyzer] ConditionBRVisitor: emphasize value with apostrophes.

I am okay with the grammatical sense, just we are programmers.
Address that only "variable" which is an enum in D60671.

Apr 14 2019, 9:18 AM · Restricted Project
Charusso added a comment to D60671: [analyzer] ConditionBRVisitor: Treat enums as unknown.

This error found in D59155.

Apr 14 2019, 9:17 AM · Restricted Project
Charusso added a parent revision for D60671: [analyzer] ConditionBRVisitor: Treat enums as unknown: D58207: [analyzer] ConditionBRVisitor: Boolean support.
Apr 14 2019, 9:17 AM · Restricted Project
Charusso added a child revision for D58207: [analyzer] ConditionBRVisitor: Boolean support: D60671: [analyzer] ConditionBRVisitor: Treat enums as unknown.
Apr 14 2019, 9:17 AM · Restricted Project
Charusso created D60671: [analyzer] ConditionBRVisitor: Treat enums as unknown.
Apr 14 2019, 9:11 AM · Restricted Project
Charusso added a project to D60671: [analyzer] ConditionBRVisitor: Treat enums as unknown: Restricted Project.
Apr 14 2019, 9:11 AM · Restricted Project
Charusso updated the diff for D58207: [analyzer] ConditionBRVisitor: Boolean support.
  • Rebased
Apr 14 2019, 9:06 AM · Restricted Project
Charusso updated the diff for D58206: [analyzer] ConditionBRVisitor: MemberExpr support.
  • Rebased
Apr 14 2019, 9:06 AM · Restricted Project
Charusso updated the diff for D58199: [analyzer] ConditionBRVisitor: Remove duplicated code.
  • Rebased
Apr 14 2019, 9:03 AM · Restricted Project
Charusso added a parent revision for D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information: D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.
Apr 14 2019, 9:02 AM · Restricted Project
Charusso added a child revision for D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece: D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information.
Apr 14 2019, 9:02 AM · Restricted Project
Charusso updated the diff for D53076: [analyzer] ConditionBRVisitor: Enhance to write out more information.

Address comments:

  • Removed member variable.
  • Introducing PathDiagnosticPopUpPiece(D60670)
Apr 14 2019, 9:02 AM · Restricted Project
Charusso created D60670: [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece.
Apr 14 2019, 8:55 AM · Restricted Project

Apr 4 2019

Charusso accepted D60107: [analyzer] NoStoreFuncVisitor: Suppress bug reports with no-store in system headers..

It is very good to try one improvement in another similar function.

Apr 4 2019, 11:35 AM · Restricted Project, Restricted Project

Mar 29 2019

Charusso accepted D59121: [analyzer] Fix macro names in diagnostics within bigger macros..

Nice catch!

Mar 29 2019, 3:14 PM · Restricted Project
Charusso added a comment to D59121: [analyzer] Fix macro names in diagnostics within bigger macros..
In D59121#1448386, @NoQ wrote:

Mmm, that *is* an Assuming... piece, i.e., this is the same code, just the structure of macros is more complicated than usual.

Mar 29 2019, 2:30 PM · Restricted Project
Charusso added a comment to D59121: [analyzer] Fix macro names in diagnostics within bigger macros..
In D59121#1448367, @NoQ wrote:

On second thought, dunno. In the scan-build macro preview it wouldn't show you UINT32_MAX anyway. Maybe let's keep this behavior.

Cleaned up the patch a little bit.

Mar 29 2019, 2:21 PM · Restricted Project

Mar 28 2019

Charusso added inline comments to D59251: [Documentation] Proposal for plan to change variable names.
Mar 28 2019, 7:51 AM · Restricted Project

Mar 27 2019

Charusso accepted D59901: [analyzer] PR41239: Fix a crash on invalid source location in NoStoreFuncVisitor..

Nice solution.

Mar 27 2019, 1:53 PM · Restricted Project, Restricted Project
Charusso accepted D59861: [analyzer] NFC: Replace Taint API with a usual inter-checker communication API?.

I like the idea to put connecting stuff together in the same file to create more understandable code. LGTM.

Mar 27 2019, 1:05 AM · Restricted Project
Charusso added a comment to D59857: [analyzer] PR37501: Disable the assertion for reverse-engineering logical op short circuits..

There is no connection with my reverse-engineering reverted patch: https://reviews.llvm.org/D57410?id=184992 ? It evaluates the left and the right side and may it could help.

Mar 27 2019, 12:23 AM · Restricted Project

Mar 26 2019

Charusso accepted D58367: [analyzer] NFC: Improve upon the concept of BugReporterVisitor..

Cool! I have found this message-semantic idea useful in Unity where every GameObject could talk with each other in a very generic way (https://docs.unity3d.com/ScriptReference/GameObject.SendMessage.html).
I am looking forward for more!

Mar 26 2019, 3:52 PM · Restricted Project, Restricted Project

Mar 25 2019

Charusso added a comment to D59155: [analyzer] ConditionBRVisitor: emphasize value with apostrophes.
In D59155#1442339, @NoQ wrote:

It seems to me that the original intent here was to only apply quotes to proper nouns (i.e., Assuming this "x" thing of yours, as you call it, is greater than 152), while keeping the common nouns, such as 152, unquoted.

Mar 25 2019, 3:27 PM · Restricted Project

Mar 19 2019

Charusso added a comment to D57896: Variable names rule.

FWIW, my suggestion is *not* to expand names like DRE to decl_ref_expr, I agree that doesn't add clarity to the code. Two possibilities: "dre", or "decl" which is what I would write today.

Mar 19 2019, 11:59 AM · Restricted Project, Restricted Project
Charusso updated subscribers of D57896: Variable names rule.

I can understand Zach's position here, but LLDB has historically never conformed to the general LLVM naming or other conventions due to its heritage. It should not be taken as precedent that the rest of the project should follow.

In any case, I think that it is best for this discussion to take place on the llvm-dev list where it is likely to get the most visibility. Would you mind moving comments and discussions there?

Mar 19 2019, 7:49 AM · Restricted Project, Restricted Project

Mar 16 2019

Charusso committed rG9ea2f9079d01: [analyzer] ConditionBRVisitor: Unknown condition evaluation support (authored by Charusso).
[analyzer] ConditionBRVisitor: Unknown condition evaluation support
Mar 16 2019, 6:47 AM
Charusso committed rC356323: [analyzer] ConditionBRVisitor: Unknown condition evaluation support.
[analyzer] ConditionBRVisitor: Unknown condition evaluation support
Mar 16 2019, 6:47 AM
Charusso committed rL356323: [analyzer] ConditionBRVisitor: Unknown condition evaluation support.
[analyzer] ConditionBRVisitor: Unknown condition evaluation support
Mar 16 2019, 6:47 AM
Charusso committed rGcf0b4e32eb8a: [analyzer] ConditionBRVisitor: Remove GDM checking (authored by Charusso).
[analyzer] ConditionBRVisitor: Remove GDM checking
Mar 16 2019, 4:54 AM