NoQ (Artem Dergachev)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Mon, Sep 24

NoQ accepted D52435: [analyzer] Prevent crashes in FindLastStoreBRVisitor.
Mon, Sep 24, 2:16 PM
NoQ added a comment to D52423: [analyzer] Make ConversionChecker load StdCLibraryFunctionsChecker.

Maybe just move StdCLibraryFunctionsChecker to core? (.apiModeling?) We officially don't support disabling core, so i guess it kinda solves the issue. Also all of our languages are C-based, these functions are present on all platforms (if any of those aren't, we could split them out and keep in unix).

Mon, Sep 24, 10:43 AM

Fri, Sep 21

NoQ accepted D52326: [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible.

Yay!

Fri, Sep 21, 1:33 PM
NoQ accepted D52338: [analyzer] Process state in checkEndFunction in RetainCountChecker.

I suspect that other checkers may suffer from the same problem.

Fri, Sep 21, 12:30 PM
NoQ accepted D52337: [analyzer] Highlight sink nodes in red in exploded graph.
Fri, Sep 21, 12:10 PM
NoQ added a comment to D52337: [analyzer] Highlight sink nodes in red in exploded graph.

Maybe use text as well? It's hard to decipher color coding if you're not the one who introduced it.

Fri, Sep 21, 12:10 PM
NoQ accepted D52336: [analyzer] [NFC] Prefer make_unique over "new".
Fri, Sep 21, 12:08 PM

Thu, Sep 20

NoQ added inline comments to D52326: [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible.
Thu, Sep 20, 3:42 PM
NoQ added a reviewer for D52326: [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible: rnkovacs.
Thu, Sep 20, 3:25 PM
NoQ added inline comments to D52326: [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible.
Thu, Sep 20, 3:25 PM
NoQ added a comment to D52269: [analyzer] [NFC] Dead code removal.

Mm okay right. I wonder what were the plans for NSErrorChecker that required this.

Thu, Sep 20, 2:26 PM
NoQ added a comment to D51866: [analyzer][UninitializedObjectChecker][WIP] New flag to ignore guarded uninitialized fields.

You can retrieve any node from the ASTMatcher by .bind()ing sub-matchers to string keys and later retrieving them from the MatchResult dictionary by those keys. It's like a regex capturing groups (and, well, ASTMatchers also support backreferences to such groups, i.e. equalsBoundNode()).

Thu, Sep 20, 2:01 PM
NoQ accepted D52269: [analyzer] [NFC] Dead code removal.
Thu, Sep 20, 1:41 PM
NoQ accepted D52284: [analyzer] Fix bug in isInevitablySinking.

Yup. Ugh.

Thu, Sep 20, 1:41 PM

Mon, Sep 17

NoQ updated the diff for D52189: [analyzer] Fix a crash regression on casting opaque symbolic pointers from unrelated base classes to derived classes..

Add a defensive check that prevents more crashes if the source type is not a class at all.

Mon, Sep 17, 5:54 PM
NoQ accepted D51886: [analyzer][UninitializedObjectChecker] Using the new const methods of ImmutableList.

Hmm, how did i miss it?

Mon, Sep 17, 1:48 PM
NoQ accepted D52183: [analyzer] ExplodedGraph printing fixes.

Yeah, these globals were weird.

Mon, Sep 17, 1:45 PM
NoQ updated the diff for D52189: [analyzer] Fix a crash regression on casting opaque symbolic pointers from unrelated base classes to derived classes..

Add a bit more discussion into the comments.

Mon, Sep 17, 1:33 PM
NoQ created D52189: [analyzer] Fix a crash regression on casting opaque symbolic pointers from unrelated base classes to derived classes..
Mon, Sep 17, 1:33 PM
NoQ added a comment to D52133: [analyzer] A testing facility for testing relationships between symbols..

Mm, i mean, that reason as good as well.

Mon, Sep 17, 1:16 PM
NoQ added a comment to D52133: [analyzer] A testing facility for testing relationships between symbols..

@NoQ Actually I agree with @baloghadamsoftware that it makes sense to have a separate test, as this functionality should be tested regardless of svalbuilder-rearrange-comparisons existence.

Mon, Sep 17, 1:15 PM
NoQ added a comment to D52133: [analyzer] A testing facility for testing relationships between symbols..

Should not it we have its own test in expr-inspection.c?

Mon, Sep 17, 12:55 PM
NoQ updated the diff for D52133: [analyzer] A testing facility for testing relationships between symbols..

Address comments. Add more sanity checks and test them.

Mon, Sep 17, 12:54 PM

Sat, Sep 15

NoQ added a comment to D51667: [analyzer] Dump stable identifiers for exploded nodes.

So trimmed graphs are in a different allocator?

Sat, Sep 15, 9:55 AM

Fri, Sep 14

NoQ created D52133: [analyzer] A testing facility for testing relationships between symbols..
Fri, Sep 14, 8:28 PM
NoQ accepted D51821: [analyzer] Skip printing duplicate nodes, even if nodes have multiple predecessors/successors.
Fri, Sep 14, 5:57 PM
NoQ accepted D52114: [analyzer] Further printing improvements: use declarations.
Fri, Sep 14, 5:40 PM
NoQ accepted D52113: Generate unique identifiers for Decl objects.

We're getting pretty good at it ^^

Fri, Sep 14, 5:38 PM
NoQ accepted D51827: [analyzer] Generate and use stable identifiers for LocationContext.

Yay!

Fri, Sep 14, 5:38 PM

Thu, Sep 13

NoQ accepted D51680: [analyzer][UninitializedObjectChecker] New flag to ignore records based on it's fields.

I hope we'll be able to come up with a reasonable default regex.

Thu, Sep 13, 7:15 PM
NoQ accepted D51679: [analyzer][UninitializedObjectChecker] Refactored checker options.
Thu, Sep 13, 7:09 PM
NoQ requested changes to D51531: [analyzer][UninitializedObjectChecker] Uninit regions are only reported once.

Or, wait, hmm, no, we can still de-duplicate the reports with a global set stored in the checker object. Because we would probably like to de-duplicate across different paths as well.

Thu, Sep 13, 7:03 PM
NoQ accepted D51531: [analyzer][UninitializedObjectChecker] Uninit regions are only reported once.

Hmm, i guess it's necessary to de-duplicate across multiple reports as well.

Thu, Sep 13, 7:02 PM
NoQ added a comment to D51531: [analyzer][UninitializedObjectChecker] Uninit regions are only reported once.

Hmm, so we're reporting the same region twice in the same bug report through different field chains, right? Why is a state trait necessary here? Maybe just de-duplicate them locally before throwing the report?

Thu, Sep 13, 6:59 PM
NoQ accepted D51057: [analyzer][UninitializedObjectChecker] Fixed dereferencing.

Looks good i guess. I'm glad this is sorted out^^

Thu, Sep 13, 6:56 PM
NoQ added a comment to D51821: [analyzer] Skip printing duplicate nodes, even if nodes have multiple predecessors/successors.

Yeah, i guess that's a good thing to know.

Thu, Sep 13, 6:30 PM
NoQ accepted D51822: Support generating unique identifiers for Stmt objects.

Looks as expected. I hope that assertion does actually hold. Should AST folks have a look as well?

Thu, Sep 13, 6:29 PM
NoQ accepted D51823: [analyzer] Dump unique identifiers for statements in exploded graph.

Yay.

Thu, Sep 13, 5:54 PM
NoQ added inline comments to D51826: [analyzer] Dump reproducible identifiers for statements in exploded graph in store.
Thu, Sep 13, 5:53 PM
NoQ accepted D51824: StmtPrinter: allow customizing the end-of-line character.

Looks great to me and pretty trivial, should somebody who's more familiar with this code take a look?

Thu, Sep 13, 5:48 PM · Restricted Project
NoQ accepted D51826: [analyzer] Dump reproducible identifiers for statements in exploded graph in store.

This would have helped me immensely with debugging temporary materialization support. Assuming that we dump these identifiers in symbols/regions as well.

Thu, Sep 13, 5:38 PM
NoQ accepted D51825: [analyzer] Use correct end-of-line character when printing statements for exploded graph.

Prevents bad centering.

Thu, Sep 13, 5:38 PM
NoQ added inline comments to D51827: [analyzer] Generate and use stable identifiers for LocationContext.
Thu, Sep 13, 5:35 PM
NoQ accepted D52031: [analyzer] Small SMT API improvement.

Fair enough :)

Thu, Sep 13, 5:33 PM
NoQ added a comment to D52036: [Analyzer] Use diff_plist in tests, NFC.

What do you think about the following approach:

  1. Define a lit substitution %diff_plist that resolves to diff -u -w -I "<string>/" -I "<string>.:" -I "version" -.
  2. Update these flags in your downstream fork.
Thu, Sep 13, 5:13 PM

Thu, Sep 6

NoQ accepted D51417: [analyzer][UninitializedObjectChecker] Updated comments.

Comments always welcome!

Thu, Sep 6, 6:41 PM
NoQ added inline comments to D51057: [analyzer][UninitializedObjectChecker] Fixed dereferencing.
Thu, Sep 6, 6:18 PM
NoQ added a comment to D50488: [Analyzer] Checker for non-determinism caused by sorting of pointer-like elements.

I'm generally fine with landing the patch as long as the overall direction is chosen (and be moved towards) for how to safely identify the non-deterministic iterators (my previous inline question). This has to be addressed before we move out of alpha, but i believe we should pick at least some direction now, because i've very little idea about how to actually do that safely, and i'm worried that we'll get stuck in a dead end here.

Thu, Sep 6, 6:05 PM · Restricted Project
NoQ accepted D45416: [AST, analyzer] Transform rvalue cast outputs to lvalues (fheinous-gnu-extensions).
Thu, Sep 6, 5:45 PM
NoQ added a comment to D45416: [AST, analyzer] Transform rvalue cast outputs to lvalues (fheinous-gnu-extensions).

Dunno, i guess you can just commit it.

Thu, Sep 6, 5:45 PM
NoQ accepted D51761: [analyzer] Do not add invalid source location to the coverage information.

Yay.

Thu, Sep 6, 5:38 PM
NoQ added a comment to D51761: [analyzer] Do not add invalid source location to the coverage information.

Test? (:

Thu, Sep 6, 5:20 PM
NoQ accepted D51665: [analyzer] Skip printing trivial nodes in exploded graph.

Yeah, something like that :)

Thu, Sep 6, 4:50 PM
NoQ accepted D51669: [analyzer] [NFC] Prefer passing raw reference to value instead of a reference to unique_ptr.

Yup, either that or at least a smart pointer by value.

Thu, Sep 6, 4:08 PM
NoQ accepted D51668: [analyzer] Coverage information: store FileIDs, not hashes.
Thu, Sep 6, 4:06 PM
NoQ accepted D51667: [analyzer] Dump stable identifiers for exploded nodes.

The interesting part here is that you immediately see in which order nodes were created, which is great for debugging exploration order.

Thu, Sep 6, 4:06 PM
NoQ accepted D51515: [analyzer] Add coverage information to plist output, update tests.
Thu, Sep 6, 3:30 PM
NoQ added inline comments to D51514: [analyzer] [NFC] Push the logic for updating the ExecutedLines with diagnostic pieces into the BugReporter.
Thu, Sep 6, 3:28 PM
NoQ accepted D51514: [analyzer] [NFC] Push the logic for updating the ExecutedLines with diagnostic pieces into the BugReporter.
Thu, Sep 6, 3:28 PM
NoQ accepted D51397: [analyzer] Remove the "postponed" hack, deal with derived symbols using an extra map.
Thu, Sep 6, 3:22 PM
NoQ accepted D51512: [analyzer] [NFC] Use StringRef when returning a large string literal in HTMLDiagnostics.
Thu, Sep 6, 3:22 PM
NoQ accepted D51513: [analyzer] [NFC] Move methods for dumping the coverage in HTMLDiagnostics into the class.
Thu, Sep 6, 3:22 PM
NoQ accepted D51393: Provide a method for generating deterministic IDs for pointers allocated in BumpPtrAllocator.

I'm happy with the code.

Thu, Sep 6, 3:17 PM
NoQ accepted D51395: [analyzer] Dump a reproducible, deterministic ID of program state to exploded graph.

I very very much appreciate this.

Thu, Sep 6, 2:51 PM

Wed, Sep 5

NoQ added inline comments to D51667: [analyzer] Dump stable identifiers for exploded nodes.
Wed, Sep 5, 2:11 PM
NoQ accepted D51655: [analyzer] Remove traces of ubigraph visualization.

I actually thought it's just a different name for graphviz :/

Wed, Sep 5, 11:58 AM
NoQ added inline comments to D51665: [analyzer] Skip printing trivial nodes in exploded graph.
Wed, Sep 5, 11:54 AM
NoQ added a comment to D51300: [analyzer][UninitializedObjectChecker] No longer using nonloc::LazyCompoundVal.

Very easy:

Wed, Sep 5, 11:47 AM

Tue, Sep 4

NoQ accepted D51666: [analyzer] [NFC] Move dumping program point into a separate function.

Yay.

Tue, Sep 4, 5:10 PM
NoQ added inline comments to D51393: Provide a method for generating deterministic IDs for pointers allocated in BumpPtrAllocator.
Tue, Sep 4, 12:43 PM
NoQ added a comment to D51300: [analyzer][UninitializedObjectChecker] No longer using nonloc::LazyCompoundVal.

Would you be comfortable me commiting this without that assert

Tue, Sep 4, 10:37 AM

Thu, Aug 30

NoQ added a comment to D51385: [analyzer] InnerPointerChecker: Fix a segfault..

Ok, i'll get to the rest of the stuff a bit later (unless you pick it up).

Thu, Aug 30, 11:42 AM

Wed, Aug 29

NoQ added a comment to D51393: Provide a method for generating deterministic IDs for pointers allocated in BumpPtrAllocator.

In fact, generating a single "long" seems even better.

Wed, Aug 29, 4:16 PM
NoQ added inline comments to D51300: [analyzer][UninitializedObjectChecker] No longer using nonloc::LazyCompoundVal.
Wed, Aug 29, 4:06 PM
NoQ added a comment to D51390: [analyzer] CallDescription: Improve array management..

Yeah, i guess i should've split those up.

Wed, Aug 29, 3:57 PM
NoQ added a reviewer for D51390: [analyzer] CallDescription: Improve array management.: MTC.
Wed, Aug 29, 3:47 PM
NoQ accepted D51323: [analyzer] Improve tracing for uninitialized struct fields.

The code looks great.

Wed, Aug 29, 3:32 PM
NoQ added inline comments to D51397: [analyzer] Remove the "postponed" hack, deal with derived symbols using an extra map.
Wed, Aug 29, 2:24 PM
NoQ added a comment to D51393: Provide a method for generating deterministic IDs for pointers allocated in BumpPtrAllocator.

Just for consideration: The raw pointers in dumps are sometimes useful while in a debugger session, because you can cast a pointer and dump the object in the debugger.

Wed, Aug 29, 2:09 PM
NoQ accepted D50892: [analyzer][UninitializedObjectChecker] Correct dynamic type is acquired for record pointees.

Let's commit then?

Wed, Aug 29, 12:23 PM
NoQ added a comment to D51323: [analyzer] Improve tracing for uninitialized struct fields.

Eg., let's test something like this, in both C and C++:

struct Point {
  int x, y;
};
Wed, Aug 29, 12:04 PM
NoQ accepted D51322: [analyzer] [NFC] Do not define a class inside a function.

I guess it's better than nothing.

Wed, Aug 29, 12:01 PM
NoQ accepted D51252: [analyzer] Resolve the crash in ReturnUndefChecker.
Wed, Aug 29, 12:00 PM
NoQ accepted D51251: [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default.

Should be great as long as various analyzer UIs don't try to enforce this flag manually. Eg., scan-build seems to trust the driver here and doesn't expose it as an option.

Wed, Aug 29, 11:50 AM
NoQ accepted D51250: [analyzer] [NFC] Remove unused argument from makeSymExprValNN.

The contract of this method is pretty unclear. I guess we may eventually have to bring the State back at some point, but i wouldn't mind having it shorter now.

Wed, Aug 29, 11:43 AM
NoQ added inline comments to D50892: [analyzer][UninitializedObjectChecker] Correct dynamic type is acquired for record pointees.
Wed, Aug 29, 11:42 AM

Tue, Aug 28

NoQ created D51390: [analyzer] CallDescription: Improve array management..
Tue, Aug 28, 4:31 PM
NoQ retitled D51388: [analyzer] NFC: Legalize state manager factory injection. from [analyzer] Legalize state manager factory injection. to [analyzer] NFC: Legalize state manager factory injection..
Tue, Aug 28, 3:57 PM
NoQ created D51388: [analyzer] NFC: Legalize state manager factory injection..
Tue, Aug 28, 3:56 PM
NoQ created D51385: [analyzer] InnerPointerChecker: Fix a segfault..
Tue, Aug 28, 3:00 PM
NoQ accepted D51300: [analyzer][UninitializedObjectChecker] No longer using nonloc::LazyCompoundVal.

Yup, looks correct to me!

Tue, Aug 28, 1:18 PM
NoQ added inline comments to D50892: [analyzer][UninitializedObjectChecker] Correct dynamic type is acquired for record pointees.
Tue, Aug 28, 1:01 PM
NoQ accepted D49437: [analyzer][UninitializedObjectChecker] Support for nonloc::LocAsInteger.

Let's see what it finds, i guess.

Tue, Aug 28, 12:58 PM

Mon, Aug 27

NoQ updated the diff for D50855: [analyzer] pr37578: Fix lvalue/rvalue problem in field-of-temporary adjustments..

Address comments.

Mon, Aug 27, 2:55 PM
NoQ accepted D51324: [analyzer] [NFC] Follow the convention when naming the class RemoveDeadBindingsWorker.

Yay.

Mon, Aug 27, 2:41 PM
NoQ added a comment to D51322: [analyzer] [NFC] Do not define a class inside a function.

Why is this even a class?

Mon, Aug 27, 2:41 PM
NoQ added inline comments to D51323: [analyzer] Improve tracing for uninitialized struct fields.
Mon, Aug 27, 2:31 PM

Aug 24 2018

NoQ updated the diff for D51191: [analyzer] Support modelling no-op BaseToDerived casts in ExprEngine.

Tried to address the regression with double inheritance by introducing a CXXDerivedObjectRegion, which is the opposite of CXXBaseObjectRegion, to represent such casts. Such region is a bit weird because it is by design bigger than its super-region. But it's not harmful when it is put on top of a SymbolicRegion that has unknown extent anyway.

Aug 24 2018, 5:36 PM
NoQ commandeered D51191: [analyzer] Support modelling no-op BaseToDerived casts in ExprEngine.
Aug 24 2018, 5:32 PM
NoQ accepted D50892: [analyzer][UninitializedObjectChecker] Correct dynamic type is acquired for record pointees.
Aug 24 2018, 4:09 PM