Page MenuHomePhabricator

NoQ (Artem Dergachev)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 3 2015, 9:16 AM (198 w, 5 d)

Recent Activity

Today

NoQ added inline comments to D62611: [analyzer][Dominators] Add unittests.
Tue, Jun 25, 1:27 PM · Restricted Project

Yesterday

NoQ added a comment to D63462: [analyzer] JsonSupport: Escape escapes.

See also https://xkcd.com/1638/

Mon, Jun 24, 7:26 PM · Restricted Project, Restricted Project
NoQ accepted D63462: [analyzer] JsonSupport: Escape escapes.

I guess it makes sense to add a test into test/Analysis/exploded-graph-rewriter/escapes.c as well, so that to learn if we can actually parse it later.

Mon, Jun 24, 7:26 PM · Restricted Project, Restricted Project
NoQ accepted D63726: [analyzer] print() JSONify: Create pointers.

Yay thx!

Mon, Jun 24, 7:23 PM · Restricted Project, Restricted Project
NoQ added a comment to D63727: [analyzer] print() JSONify: Stable LocationContext IDs.

I think i'd rather remove it entirely.

Mon, Jun 24, 7:23 PM · Restricted Project
NoQ added a comment to D63727: [analyzer] print() JSONify: Stable LocationContext IDs.

In normal dumps i'd rather have it the old way because it's similar to how stack frames are displayed in the debugger.

Mon, Jun 24, 7:23 PM · Restricted Project
NoQ accepted D63720: [analyzer] ExprEngine: Escape pointers in bitwise operations.

Great, thanks!

Mon, Jun 24, 5:38 PM · Restricted Project, Restricted Project
NoQ added inline comments to D63720: [analyzer] ExprEngine: Escape pointers in bitwise operations.
Mon, Jun 24, 5:10 PM · Restricted Project, Restricted Project
NoQ added a comment to D63720: [analyzer] ExprEngine: Escape pointers in bitwise operations.

Nice!~ I'm glad this is getting sorted out.

Mon, Jun 24, 3:21 PM · Restricted Project, Restricted Project

Sat, Jun 22

NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
In D62883#1554494, @NoQ wrote:

It should be pretty easy to implement, just add your new visitor to the list of default visitors in findValidReport().

The thinking was to preserve this patch (roughly) in the state as the analyses were run.

Sat, Jun 22, 10:46 PM · Restricted Project

Fri, Jun 21

NoQ added a child revision for D63684: [analyzer] exploded-graph-rewriter: NFC: Extract some code into functions.: D63685: [analyzer] exploded-graph-rewriter: Add support for range constraints..
Fri, Jun 21, 8:21 PM · Restricted Project, Restricted Project
NoQ added a parent revision for D63685: [analyzer] exploded-graph-rewriter: Add support for range constraints.: D63684: [analyzer] exploded-graph-rewriter: NFC: Extract some code into functions..
Fri, Jun 21, 8:21 PM · Restricted Project, Restricted Project
NoQ created D63685: [analyzer] exploded-graph-rewriter: Add support for range constraints..
Fri, Jun 21, 8:21 PM · Restricted Project, Restricted Project
NoQ created D63684: [analyzer] exploded-graph-rewriter: NFC: Extract some code into functions..
Fri, Jun 21, 8:15 PM · Restricted Project, Restricted Project
NoQ added a comment to D63462: [analyzer] JsonSupport: Escape escapes.

I guess let's add a test for the unicode problem that you're seeing.

Fri, Jun 21, 6:50 PM · Restricted Project, Restricted Project
NoQ added a comment to D63438: [analyzer] print() JSONify: ProgramPoint revision.

Pls commit? ^.^

Fri, Jun 21, 6:50 PM · Restricted Project, Restricted Project
NoQ accepted D63642: [analyzer] Add a debug analyzer config to place an event for each tracked condition.

Aha, yep, nice debug flag!

Fri, Jun 21, 4:17 PM · Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

It should be pretty easy to implement, just add your new visitor to the list of default visitors in findValidReport().

Fri, Jun 21, 4:14 PM · Restricted Project
NoQ accepted D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

Aha, ok, got it. I guess the official term is "error node" (where "error" means "warning").

Fri, Jun 21, 4:13 PM · Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
  • Add a TODO: in trackExpressionValue about maybe tracking conditions to all bug locations, rather than only for tracked variables.
Fri, Jun 21, 2:40 PM · Restricted Project

Thu, Jun 20

NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

Oh, wait, no, loops.

Thu, Jun 20, 5:10 PM · Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
  • Uniqueing already tracked conditions as an (Expr, ExplodedNode) pair instead of on Expr

I would be surprised to see the same ExploderNode multiple time a lot. Also, ExploderNode will have a program point, so having both an ExploderNode and an Expr feels redundant to me.

Thu, Jun 20, 5:10 PM · Restricted Project
NoQ accepted D63538: [analyzer][CFG] Return the correct terminator condition.

Ok, thanks!

Thu, Jun 20, 3:03 PM · Restricted Project

Wed, Jun 19

NoQ added a comment to D63538: [analyzer][CFG] Return the correct terminator condition.

I think this kinda makes sense, but also it looks like a risky change, because who knows how many times we have took the old behavior for granted. In particular, i'm slightly worried about this breaking the wonky logic of ExprEngine::VisitLogicalExpr (cf. D59857). But i've no specific concerns, so i think it's worth a try, given that it's a massive simplification.

Wed, Jun 19, 5:35 PM · Restricted Project
NoQ added a comment to D62899: [analyzer][UninitializedObjectChecker] Mark uninitialized regions as interesting..

Added a proper testfile. The only downside of it is that it doesn't test anything.

Wed, Jun 19, 5:23 PM · Restricted Project
NoQ added inline comments to D63227: [analyzer] Better timers..
Wed, Jun 19, 4:38 PM · Restricted Project, Restricted Project
NoQ added inline comments to D63533: [analyzer] Fix clang-tidy crash on GCCAsmStmt.
Wed, Jun 19, 1:58 PM · Restricted Project
NoQ added inline comments to D63533: [analyzer] Fix clang-tidy crash on GCCAsmStmt.
Wed, Jun 19, 1:54 PM · Restricted Project
NoQ added inline comments to D63533: [analyzer] Fix clang-tidy crash on GCCAsmStmt.
Wed, Jun 19, 1:52 PM · Restricted Project

Tue, Jun 18

NoQ added a comment to D63533: [analyzer] Fix clang-tidy crash on GCCAsmStmt.

Hey, thanks! That's a nice catch.

Tue, Jun 18, 5:56 PM · Restricted Project
NoQ updated the diff for D63519: [analyzer] exploded-graph-rewriter: Fix escaping and unescaping of StringRegions..

Oh, right, thanks!

Tue, Jun 18, 3:17 PM · Restricted Project, Restricted Project
NoQ added a comment to D63462: [analyzer] JsonSupport: Escape escapes.

My problem is demonstrated (and solved) by D63519. If i revert my changes but apply this patch instead, my test keeps failing.

Tue, Jun 18, 3:03 PM · Restricted Project, Restricted Project
NoQ created D63519: [analyzer] exploded-graph-rewriter: Fix escaping and unescaping of StringRegions..
Tue, Jun 18, 3:02 PM · Restricted Project, Restricted Project
NoQ updated the diff for D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..

Don't try to sneak in an unrelated change.

Tue, Jun 18, 2:59 PM · Restricted Project, Restricted Project
NoQ added a comment to D63462: [analyzer] JsonSupport: Escape escapes.

I mean, i'm removing backslashes but you're adding more backslashes. Therefore i think we're talking about different issues.

Tue, Jun 18, 2:56 PM · Restricted Project, Restricted Project
NoQ added a comment to D63462: [analyzer] JsonSupport: Escape escapes.

Hmm, this doesn't seem to solve my problem in D62761. Let me write some actual test case so that you knew it's fixed when it's fixed.

Tue, Jun 18, 2:12 PM · Restricted Project, Restricted Project

Mon, Jun 17

NoQ accepted D63438: [analyzer] print() JSONify: ProgramPoint revision.

Great, thanks!

Mon, Jun 17, 4:03 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
Mon, Jun 17, 3:23 PM · Restricted Project
NoQ added inline comments to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
Mon, Jun 17, 2:32 PM · Restricted Project
NoQ added inline comments to D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Mon, Jun 17, 2:02 PM · Restricted Project, Restricted Project
NoQ added parent revisions for D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode.: D63362: [analyzer] Fix JSON dumps for store clusters., D62754: [analyzer] Fix JSON dumps for location contexts..
Mon, Jun 17, 1:56 PM · Restricted Project, Restricted Project
NoQ added a child revision for D63362: [analyzer] Fix JSON dumps for store clusters.: D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Mon, Jun 17, 1:56 PM · Restricted Project, Restricted Project
NoQ added a child revision for D62754: [analyzer] Fix JSON dumps for location contexts.: D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Mon, Jun 17, 1:56 PM · Restricted Project, Restricted Project
NoQ updated the diff for D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..

Add tests, rebase.

Mon, Jun 17, 1:53 PM · Restricted Project, Restricted Project
NoQ accepted D63436: [analyzer] Fix JSON dumps for ExplodedNodes.
Mon, Jun 17, 12:45 PM · Restricted Project, Restricted Project
NoQ added a comment to D63438: [analyzer] print() JSONify: ProgramPoint revision.

Yes, this would be helpful! Tests?

Mon, Jun 17, 12:41 PM · Restricted Project, Restricted Project

Fri, Jun 14

NoQ accepted D63080: [analyzer] Track indices of arrays.

Great, thanks!!

Fri, Jun 14, 6:15 PM · Restricted Project, Restricted Project
NoQ added a comment to D62899: [analyzer][UninitializedObjectChecker] Mark uninitialized regions as interesting..

I don't remember what exactly does markInteresting() do and these tests don't really convince me that it does anything at all. Halp? >.<

Fri, Jun 14, 5:38 PM · Restricted Project
NoQ updated the diff for D63362: [analyzer] Fix JSON dumps for store clusters..

Fair enough, they aren't really needed here.

Fri, Jun 14, 4:05 PM · Restricted Project, Restricted Project
NoQ created D63362: [analyzer] Fix JSON dumps for store clusters..
Fri, Jun 14, 2:59 PM · Restricted Project, Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

(then, again, not sure what happens if more nested stack frames are around)

Fri, Jun 14, 2:41 PM · Restricted Project
NoQ added inline comments to D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Fri, Jun 14, 2:24 PM · Restricted Project, Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

How about we track the condition value past its collapse point only if it involves an overwrite of a variable (or other region) from which the value is loaded? Like, if there are no overwrites, stop at the collapse point. If there are overwrites, stop at the oldest overwrite point (i.e., the value was loaded from 'x' which was previously overwritten by the value of value 'y' which was previously overwritten by the initial value of variable 'z' => stop at the overwrite point of 'y').

Fri, Jun 14, 2:15 PM · Restricted Project
NoQ added inline comments to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.
Fri, Jun 14, 2:10 PM · Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

Some conclusions:

  • Cases where the condition is also a variable initialization tend to expand the bug path greatly. This isn't always bad, but should be noted. In general, unless we have a good heuristic to figure out whether there is meaningful information on the right hand side of the initialization, I think we just shouldn't track these. A good example for this is this one. The 37th event contains pretty much every information we need, it's obvious that the optional could either be None or non-None, since it's in a condition. dyn_cast is a prime example too: in this case, note 9 is all we really need.
  • We should probably believe that operator bool() is implemented correctly, and shouldn't track the value all the way there (at least, when we're only tracking the condition). Example
  • We shouldn't ever track assert-like conditions. Example (note 38-41)
  • When the report didn't suffer from any of the above issues, I found the extra notes to be helpful! :D
Fri, Jun 14, 2:10 PM · Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

I am not sure about assuming operator bool being correct. I think we first could think about other tricks to limit the tracking (see my idea above) and if we fail I would only add such rules as a last resort.

Fri, Jun 14, 1:50 PM · Restricted Project

Thu, Jun 13

NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

*sloowly catches up >.<*

Thu, Jun 13, 11:03 PM · Restricted Project
NoQ accepted D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.

Great, thanks!! Let's commit this.

Thu, Jun 13, 10:49 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.
Thu, Jun 13, 10:32 PM · Restricted Project, Restricted Project

Wed, Jun 12

NoQ added a comment to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.

Yup, this makes sense now! I'll do some nit-picking for a little longer.

Wed, Jun 12, 9:05 PM · Restricted Project, Restricted Project
NoQ created D63227: [analyzer] Better timers..
Wed, Jun 12, 2:05 PM · Restricted Project, Restricted Project

Tue, Jun 11

NoQ added a comment to D62978: [analyzer] trackExpressionValue(): Handle unknown values better.

This problem is fairly complicated. We clearly need both behaviors (sometimes track until the definition, sometimes track until the collapse-to-null), and it's not clear to me right now when exactly do we need each of them. This is also not a high priority for GSoC because neither there are a lot of warnings of this kind (~15 or so) nor they're actually that false. I suggest taking this more slowly and delay this patch until we actually understand what is the right thing to do here.

Tue, Jun 11, 6:28 PM · Restricted Project
NoQ added a comment to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.

All right, it seems that i'm completely misunderstanding this problem and we've been talking past each other this whole time.

Tue, Jun 11, 5:33 PM · Restricted Project, Restricted Project
NoQ added a comment to D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..

I asked for the new behavior, but I think it should be cool.

Tue, Jun 11, 5:00 PM · Restricted Project, Restricted Project
NoQ added a comment to D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
In D62761#1525917, @NoQ wrote:

Remove "-" from program point dumps because it resembles a removal marker in diffs.

Could you add an image? I have not seen any problematic stuff, just that.

Tue, Jun 11, 4:56 PM · Restricted Project, Restricted Project

Mon, Jun 10

NoQ created D63118: [analyzer] DeadStores: Add a crude suppression files generated by DriverKit IIG..
Mon, Jun 10, 8:04 PM · Restricted Project, Restricted Project
NoQ created D63117: [analyzer] RetainCount: Add support for OSRequiredCast()..
Mon, Jun 10, 7:59 PM · Restricted Project, Restricted Project
NoQ added a comment to D63093: [analyzer] WIP: MallocChecker: Release temporary CXXNewExpr.

In such cases i recommend starting with writing down a test. Like in TDD: first test, then code.

Mon, Jun 10, 7:11 PM · Restricted Project
NoQ added a comment to D63080: [analyzer] Track indices of arrays.

Whoa, this looks like a much needed improvement, i'm glad that you found it!

Mon, Jun 10, 7:06 PM · Restricted Project, Restricted Project
NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

I'm not sure how long it'll take for me to figure out what's wrong, but these numbers are so ridiculous, I suspect a programming error rather then an algorithmic issue.

edit: I seem to have found a solution, I'll share more later when I get to evaluate this :)

Mon, Jun 10, 7:00 PM · Restricted Project
NoQ accepted D63086: [analyzer][NoStoreFuncVisitor][NFC] Move methods out-of-line, turn some to static functions.

Thx for the cleanup!

Mon, Jun 10, 6:56 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.
Mon, Jun 10, 6:49 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62978: [analyzer] trackExpressionValue(): Handle unknown values better.
Mon, Jun 10, 6:41 PM · Restricted Project
Herald added a project to D33672: [analyzer] INT50-CPP. Do not cast to an out-of-range enumeration checker: Restricted Project.

Hey, i'm seeing a crash in this checker, would you like to look at it? It looks as if you're not being careful about dereferences/lvalue-to-rvalue-casts so it tries to compare &e to e1.

Mon, Jun 10, 6:22 PM · Restricted Project
NoQ accepted D63041: [PlistSupport] Produce a newline to end plist output files.

Thanks!

Mon, Jun 10, 1:04 PM · Restricted Project, Restricted Project

Fri, Jun 7

NoQ added inline comments to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.
Fri, Jun 7, 10:13 PM · Restricted Project, Restricted Project

Thu, Jun 6

NoQ accepted D62949: [analyzer][tests] Add normalize_plist to replace diff_plist.

Ok! I'll be happy to have this addressed incrementally.

Thu, Jun 6, 9:59 PM · Restricted Project, Restricted Project
NoQ accepted D62946: [analyzer] ProgramPoint: more explicit printJson().

I wouldn't be surprised if some of these are entirely unused.

Thu, Jun 6, 9:41 PM · Restricted Project, Restricted Project
NoQ added a comment to D62946: [analyzer] ProgramPoint: more explicit printJson().

Fair enough!

Thu, Jun 6, 9:30 PM · Restricted Project, Restricted Project
NoQ added a comment to D59555: [analyzer] Add yaml parser to GenericTaintChecker.
In D59555#1514602, @NoQ wrote:

I'm still in doubts on how to connect your work with the CallDescription effort. I'll think more about that.

Thu, Jun 6, 9:27 PM · Restricted Project
NoQ added a comment to D62949: [analyzer][tests] Add normalize_plist to replace diff_plist.

I think we should:

  • Pre-normalize our expected outputs so that we didn't have to normalize them in every run-line.
  • Treat the lack of newline in plist output as a bug and try to fix it.
Thu, Jun 6, 9:14 PM · Restricted Project, Restricted Project
NoQ accepted D62885: [analyzer] Add werror flag for analyzer warnings.
Thu, Jun 6, 9:09 PM · Restricted Project, Restricted Project
NoQ added a comment to D62885: [analyzer] Add werror flag for analyzer warnings.

Looks great! Feel free to add a Driver flag as well (i.e., --analyzer-werror or something like that) so that not to type -Xclang every time.

Thu, Jun 6, 9:09 PM · Restricted Project, Restricted Project
NoQ added a comment to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.

Aha, nice, that's much cleaner! Indeed, we have to skip the construct-expression, which is going to be on our way to the program point of new-expression which corresponds to calling the allocator, despite being nested within the new-expression. An annoying corner-case.

Thu, Jun 6, 9:01 PM · Restricted Project, Restricted Project
NoQ added a comment to D62978: [analyzer] trackExpressionValue(): Handle unknown values better.

Ah, that positive!

Thu, Jun 6, 8:48 PM · Restricted Project

Wed, Jun 5

NoQ added a comment to D62926: [analyzer] ReturnVisitor: Bypass everything to see inlined calls.

Aha, that's something! And nice to see we've already had this bug covered with tests. Because, of course, i added these tests a year ago without even thinking about what the correct behavior should look like :/

Wed, Jun 5, 7:44 PM · Restricted Project, Restricted Project

Tue, Jun 4

NoQ added a comment to D62883: [analyzer] Track terminator conditions on which a tracked expressions depends.

Yay, this thing really works!

Tue, Jun 4, 7:42 PM · Restricted Project
NoQ added a comment to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

This commit breaks the NetBSD buildbot node.

Tue, Jun 4, 7:08 PM · Restricted Project, Restricted Project
NoQ added a comment to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

Thanks!! Will fix as soon as i get to my desktop.

Tue, Jun 4, 11:02 AM · Restricted Project, Restricted Project

Mon, Jun 3

NoQ added a comment to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

I disabled tests on Windows for now (rC362343 -> rC362347), but other than that the tests are working well, there was nothing to worry about.

Mon, Jun 3, 1:45 PM · Restricted Project, Restricted Project

Fri, May 31

NoQ updated the diff for D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..

Remove "-" from program point dumps because it resembles a removal marker in diffs.

Fri, May 31, 5:11 PM · Restricted Project, Restricted Project
NoQ added a parent revision for D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode.: D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..
Fri, May 31, 5:06 PM · Restricted Project, Restricted Project
NoQ added a child revision for D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps.: D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Fri, May 31, 5:06 PM · Restricted Project, Restricted Project
NoQ added a comment to D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..

I'll add some tests as soon as i'm sure tests for this thing actually work (by landing D62638).

Fri, May 31, 5:06 PM · Restricted Project, Restricted Project
NoQ created D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode..
Fri, May 31, 5:06 PM · Restricted Project, Restricted Project
NoQ updated the diff for D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

Rebase.

Fri, May 31, 4:51 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..
Fri, May 31, 4:51 PM · Restricted Project, Restricted Project
NoQ added inline comments to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..
Fri, May 31, 4:44 PM · Restricted Project, Restricted Project
NoQ added a comment to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..
In D62638#1525823, @NoQ wrote:

Also switched to python2 because it seems to be the default. The differences are minimal.

What about the state of the patch itself? Planned stuff WIP, could I take it to SVGify, or?

Fri, May 31, 4:41 PM · Restricted Project, Restricted Project
NoQ added a comment to D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

Also switched to python2 because it seems to be the default. The differences are minimal.

Fri, May 31, 4:02 PM · Restricted Project, Restricted Project