NoQ (Artem Dergachev)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Yesterday

NoQ added a comment to D34275: [analyzer] Re-implemente current virtual calls checker in a path-sensitive way.

First of all, thanks everybody for working on this. I'd see what i can do.

Sat, Aug 19, 9:44 AM

Fri, Aug 18

NoQ accepted D36851: [analyzer] Fix modeling of ctors.

After the FIXME about record layout is addressed, i guess the next action item is to make sure the trivial constructor for the empty base is not evaluated conservatively (doh!). Because whatever bindings we make, for now they'd be blown away immediately during "construction".

Fri, Aug 18, 1:25 AM

Thu, Aug 17

NoQ added a comment to D36708: [analyzer] Fix Bug34144-[MallocChecker] MallocChecker::MallocUpdateRefState(): Assertion `Sym' failed..

Aha, right, makes sense. Yeah, there must be more problems with this mode. Which doesn't make the current patch less useful :)

Thu, Aug 17, 8:39 AM

Tue, Aug 15

NoQ created D36750: [analyzer] RetainCount: When diagnosing overrelease, mention if it's coming from a nested block..
Tue, Aug 15, 8:55 AM
NoQ created D36737: [analyzer] Store design discussions in docs/analyzer for future use..
Tue, Aug 15, 6:48 AM
NoQ updated the diff for D35216: [analyzer] Escape symbols when creating std::initializer_list..

Actually update the diff.

Tue, Aug 15, 6:28 AM
NoQ added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

We've discussed it in person with Devin, and he provided more points to think about:

Tue, Aug 15, 6:27 AM
NoQ added a comment to D36708: [analyzer] Fix Bug34144-[MallocChecker] MallocChecker::MallocUpdateRefState(): Assertion `Sym' failed..

Totally makes sense, thanks!

Tue, Aug 15, 2:38 AM

Mon, Aug 14

NoQ added a comment to D36690: [StaticAnalyzer] Adding initial conservative loop widening config option.

Do i understand correctly that your code does widening for simple loops but leaves complex loops intact, unless the old widening is also turned on?

Mon, Aug 14, 9:29 AM
NoQ accepted D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Looks great now!

Mon, Aug 14, 7:09 AM
NoQ accepted D36564: [analyzer] Fix SimpleSValBuilder::simplifySVal.
Mon, Aug 14, 7:06 AM
NoQ added a comment to D36564: [analyzer] Fix SimpleSValBuilder::simplifySVal.

Hmm, looks correct. Thanks! I guess this problem appeared when we enabled SymSymExprs, otherwise (End - Begin) would have been UnknownVal.

Mon, Aug 14, 7:06 AM

Thu, Aug 10

NoQ added inline comments to D36251: [analyzer] Suppress warning when bug path contains noreturn function or return from main in MagentaHandleChecker.
Thu, Aug 10, 2:56 AM
NoQ added inline comments to D36251: [analyzer] Suppress warning when bug path contains noreturn function or return from main in MagentaHandleChecker.
Thu, Aug 10, 12:32 AM
NoQ added a comment to D35109: [Analyzer] SValBuilder Comparison Rearrangement.

What do you suggest? Should we widen the type of the difference, or abandon this patch and revert back to the local solution I originally used in the iterator checker?

Does the local solution you used in the iterator checker not have the same problem?

Thu, Aug 10, 12:20 AM

Thu, Jul 27

NoQ added a comment to D34812: [StaticAnalyzer] LoopUnrolling: Handling conditions with known value variables.

Am i understanding correctly that this patch is waiting to be rebased on top of D35684?

Thu, Jul 27, 5:37 AM
NoQ added a comment to D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.

Woohoo, looks much nicer and cleaner :3

Thu, Jul 27, 5:34 AM
NoQ added a comment to D35668: [CFG] Add LoopExit information to CFG.

CFG construction tests seem to have accidentally disappeared from the recent revisions.

Thu, Jul 27, 5:17 AM
NoQ added a comment to D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Yay, looks cool.

Thu, Jul 27, 4:59 AM
NoQ added a comment to D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Maybe use decl matcher as the parameter, and pass either equalsNode(Foo) or equalsBoundNode("foo") as argument value?

Thu, Jul 27, 12:49 AM

Wed, Jul 26

NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Cool, i totally forgot that we have valgrind! :)

Wed, Jul 26, 10:13 AM

Tue, Jul 25

NoQ added a comment to D35796: [analyzer] Misused polymorphic object checker.

It seems that this check is more powerful because it works by knowing the dynamic type of the object. However, i still suspect that -Wnon-virtual-dtor (the other one, without delete-, that simply asks to make the destructor of polymorphic classes virtual) covers most practical cases. The only thing i see not covered by -Wnon-virtual-dtor but covered by this checker is the situation when the destructor is private. Reka, would you confirm our understanding?

Tue, Jul 25, 5:41 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Yeah, right, good point =)

Tue, Jul 25, 3:08 AM
NoQ added a comment to D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Hmm, what prevents us from reusing existing matchers against S in isPossiblyEscaped()? Also i'd probably prefer to avoid recursion (we don't want stack traces of 225k frames).

Tue, Jul 25, 2:58 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

I suspect that the usage of the CFGStmtMap* caused the undefined behaviour since its lifetime was depending on its LocationContext.

Yeah, it lives in AnalysisDeclContextManager, which lives in AnalysisManager, which lives throughout a single analysis (top-level function) and then dies (when the next top-level function is picked that wasn't covered during inlining) to clean up the allocators.

Tue, Jul 25, 1:29 AM

Mon, Jul 24

NoQ accepted D33672: [analyzer] INT50-CPP. Do not cast to an out-of-range enumeration checker.

These comments of mine are mostly random ideas for follow-up patches, i agree with Gabor this patch is good to land.

Mon, Jul 24, 12:19 PM
NoQ added a comment to D33672: [analyzer] INT50-CPP. Do not cast to an out-of-range enumeration checker.

Did the checker flag any intentionally underpopulated enums, eg.

enum {
  Unset = -1
} NumberOfChickens = 15;

(such code is bad, but it is not necessarily buggy - as far as i understand from the CERT rule, we're talking about "unspecified behavior" which some implementations may define and document, and then some people may rely)?

Mon, Jul 24, 11:59 AM
NoQ added a comment to D33672: [analyzer] INT50-CPP. Do not cast to an out-of-range enumeration checker.

Yeah, this looks good. How does this compare to alpha.core.BoolConversion, should we maybe merge them?

Mon, Jul 24, 11:49 AM
NoQ updated the diff for D35674: [analyzer] Treat C++ throw as sink during CFG-based suppress-on-sink..

Bring back the test that was accidentally lost.

Mon, Jul 24, 2:54 AM
NoQ updated the diff for D35674: [analyzer] Treat C++ throw as sink during CFG-based suppress-on-sink..

Rebase. Turn the comment into a FIXME.

Mon, Jul 24, 2:51 AM
NoQ updated the diff for D35673: [analyzer] A better CFG-based suppress-on-sink..

Reduce stack operations as Alexey suggested.

Mon, Jul 24, 2:49 AM

Jul 20 2017

NoQ added a comment to D35687: [StaticAnalyzer] Skip simulating branches where for-loops take 0 unrolled step.

If we are to help with looking into this remaining bug, could you try to extract the info that's needed to reproduce it (eg. preprocessed file and analyzer run-line)?

Jul 20 2017, 8:36 AM
NoQ added a dependency for D35674: [analyzer] Treat C++ throw as sink during CFG-based suppress-on-sink.: D35673: [analyzer] A better CFG-based suppress-on-sink..
Jul 20 2017, 3:47 AM
NoQ added a dependent revision for D35673: [analyzer] A better CFG-based suppress-on-sink.: D35674: [analyzer] Treat C++ throw as sink during CFG-based suppress-on-sink..
Jul 20 2017, 3:47 AM
NoQ created D35674: [analyzer] Treat C++ throw as sink during CFG-based suppress-on-sink..
Jul 20 2017, 3:47 AM
NoQ created D35673: [analyzer] A better CFG-based suppress-on-sink..
Jul 20 2017, 3:40 AM
NoQ added inline comments to D35613: Add Support for Generic Reference Counting Annotations in RetainCountChecker.
Jul 20 2017, 2:29 AM · Restricted Project

Jul 19 2017

NoQ accepted D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

The new tests look great, thanks. I think it's time to land :) You do already have commit access, don't you?

Jul 19 2017, 10:19 AM
NoQ added inline comments to D35613: Add Support for Generic Reference Counting Annotations in RetainCountChecker.
Jul 19 2017, 7:53 AM · Restricted Project
NoQ added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

In this case, I would be fine with some sort of AbstractStorageMemoryRegion that meant "here is a memory region and somewhere reachable from here exists another region of type T". Or even multiple regions with different identifiers. This wouldn't specify how the memory is reachable, but it would allow for transfer functions to get at those regions and it would allow for invalidation.

Jul 19 2017, 5:57 AM

Jul 18 2017

NoQ added inline comments to D35110: [Analyzer] Constraint Manager Negates Difference.
Jul 18 2017, 4:25 AM
NoQ added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

Approach (2): We could teach the Store to scan itself for bindings to metadata-symbolic-based regions during scanReachableSymbols() whenever a region turns out to be reachable. This requires no work on checker side, but it sounds performance-heavy.

Jul 18 2017, 4:06 AM

Jul 17 2017

NoQ added a comment to D35068: [analyzer] Detect usages of unsafe I/O functions.

It'd look good in clang-tidy (especially if extended to provide fixits), but if Daniel is interested in having this feature in the analyzer (and picked by clang-tidy from there), i wouldn't mind.

Jul 17 2017, 8:36 AM
NoQ added a comment to D35450: [analyzer] Support generating and reasoning over more symbolic constraint types.

I'd have a look soon.

Jul 17 2017, 8:15 AM
NoQ added inline comments to D35110: [Analyzer] Constraint Manager Negates Difference.
Jul 17 2017, 8:03 AM
NoQ added a comment to D35109: [Analyzer] SValBuilder Comparison Rearrangement.

I think we'd rather delay the unsigned difference feature (as far as i understand, you don't rely on it in the iterator checker), than introduce the artificial cast to signed which may have unexpected consequences, because that's not how unsigned difference normally behaves. I'd think a bit more on this as well.

Jul 17 2017, 7:55 AM

Jul 13 2017

NoQ added inline comments to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 13 2017, 12:18 PM
NoQ added inline comments to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 13 2017, 11:36 AM
NoQ added inline comments to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 13 2017, 11:10 AM
NoQ added a comment to D16403: Add scope information to CFG for If/While/For/Do/Compound/CXXRangeFor statements.

I think the remaining switch-related code seems to be about C++17 switch condition variables, i.e. switch (int x = ...)(?)

Jul 13 2017, 8:56 AM · Restricted Project

Jul 12 2017

NoQ added inline comments to D35110: [Analyzer] Constraint Manager Negates Difference.
Jul 12 2017, 12:59 AM
NoQ added a comment to D35109: [Analyzer] SValBuilder Comparison Rearrangement.

I think you might also need to convert APSInts to an appropriate type, as done above. Type of right-hand-side APSInts do not necessarily coincide with the type of the left-hand-side symbol or of the whole expression. APSInt operations crash when signedness doesn't match (and in a few other cases).

Jul 12 2017, 12:57 AM

Jul 11 2017

NoQ added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

These are some great questions, i guess it'd be better to discuss them more openly. As a quick dump of my current mood:

Jul 11 2017, 8:32 AM
NoQ accepted D28953: [analyzer] Eliminate analyzer limitations on symbolic constraint generation.

This looks great, thank you very much.

Jul 11 2017, 1:36 AM

Jul 10 2017

NoQ accepted D35041: [analyzer] Fix modeling of bool based types.
Jul 10 2017, 12:02 PM
NoQ added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

Or maybe it wasn't a good idea to make two diffs in one place. Dunno.

Jul 10 2017, 11:59 AM
NoQ added inline comments to D35216: [analyzer] Escape symbols when creating std::initializer_list..
Jul 10 2017, 11:56 AM
NoQ updated the diff for D35216: [analyzer] Escape symbols when creating std::initializer_list..

This other diff implements approach (1) through a draft of a checker (that doesn't model much yet). I had to additionally make sure we already have a region to construct metadata for, in spirit of D27202.

Jul 10 2017, 11:54 AM
NoQ created D35216: [analyzer] Escape symbols when creating std::initializer_list..
Jul 10 2017, 11:48 AM
NoQ added a comment to D16403: Add scope information to CFG for If/While/For/Do/Compound/CXXRangeFor statements.

There is one more thing I'd like to clarify: since e.g. BreakStmt can terminate multiple scopes, do I need to create ScopeEnd marks for all of them to make analyzer's work easier? Because right now only one "cumulative" block is generated and I'm not sure that it's acceptable for analyzer.

Jul 10 2017, 7:19 AM · Restricted Project
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Yeah, it seems that if the same loop is encountered on different paths, it gets counted twice, but if it's encountered multiple times on the same path, it's counted once. At least this is how the new NumTimesLoopUnrolled statistic seems to work.

Jul 10 2017, 7:14 AM

Jul 9 2017

NoQ added a comment to D34724: [analyzer] Add MagentaHandleChecker for the Magenta kernel.

Thanks for publishing this. It seems that your code is already huge, and you have already added a lot of workarounds for various problems (known and new) in our APIs, while it'd sound great to actually solve these problems and simplify the API to make writing checkers easier (as in http://lists.llvm.org/pipermail/cfe-dev/2017-June/054457.html ). This technical debt seems to slow down any progress on the checkers dramatically - and i'm totally sorry about that.

Jul 9 2017, 6:13 AM
NoQ added a comment to D33645: [analyzer] Add missing documentation for static analyzer checkers.

I think next time we should add examples of warning messages here - not just "//warn" but how they literally may look - so that people were able to find this page, and not doxygen/github source code, when they google up their warning messages.

Jul 9 2017, 6:13 AM

Jul 7 2017

NoQ added a comment to D35109: [Analyzer] SValBuilder Comparison Rearrangement.

Thanks, this looks great!

Jul 7 2017, 2:43 AM

Jul 6 2017

NoQ added a comment to D35041: [analyzer] Fix modeling of bool based types.

evalCastFromNonLoc is actually called there (and that's how i ran into this issue) because of (a bit unexpected to me) ImplicitCastExpr 'LValueToRValue' inside switch

Jul 6 2017, 11:25 AM
NoQ added a comment to D28953: [analyzer] Eliminate analyzer limitations on symbolic constraint generation.

Because this patch affects the default behavior, i think it's necessary to understand the performance impact on a large codebase. I may lend a hand eventually, but if you're in a hurry you could probably at least run an overnight analysis over llvm and sqlite with range constraint manager and see how performance changes with this patch, and ideally also if we get new reports or lose old reports.

Jul 6 2017, 4:23 AM
NoQ added a comment to D35041: [analyzer] Fix modeling of bool based types.

Thanks, these are very helpful.

Jul 6 2017, 1:10 AM

Jul 2 2017

NoQ accepted D34880: [analyzer] Make StmtDataCollector part of the CloneDetection API.

Looks good. To think: maybe we need a better name (and/or a place to live) for this API, now that it's not only related to clone detection, but is useful for more stuff?

Jul 2 2017, 1:06 AM
NoQ accepted D34364: [analyzer] Faster hashing of subsequences in CompoundStmts..

This looks negligible compared to compilation time.
I wonder if we're now scalable enough to try finding whole-translation-unit clones.

Jul 2 2017, 12:57 AM
NoQ accepted D34182: [analyzer] Performance optimizations for the CloneChecker.

Totally makes sense :)

Jul 2 2017, 12:43 AM
NoQ added a comment to D34178: [analyzer] Increase minimum complexity filter of the CloneChecker..

Hmm, what else remains to be fixed before we should try to deliver CloneChecker to the users (move out of alpha, either on by default or into optin)?

Jul 2 2017, 12:29 AM
NoQ added a comment to D34178: [analyzer] Increase minimum complexity filter of the CloneChecker..

We should probably add a test that shows that the current default value of MinimumCloneComplexity is large. Like, test that the positive we're trying to avoid with this patch is indeed gone.

Jul 2 2017, 12:14 AM

Jun 29 2017

NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

So how much of this would be thrown away once we have scopes?

Jun 29 2017, 7:42 AM
NoQ added inline comments to D34812: [StaticAnalyzer] LoopUnrolling: Handling conditions with known value variables.
Jun 29 2017, 7:22 AM
NoQ added a comment to D34812: [StaticAnalyzer] LoopUnrolling: Handling conditions with known value variables.

While this wasn't necessary in the first patch, i think here we should start cleaning up the UnrolledLoops map when we exit the loop. Because next time we encounter the loop, we may no longer want to unroll it - the value may no longer be concrete.

Jun 29 2017, 7:19 AM

Jun 27 2017

NoQ added a comment to D34102: [analyzer] Add portability package for the checkers..

I think it's better to have inconsistency than having checks applicable to windows in a package named portability.unix.

Jun 27 2017, 3:20 AM

Jun 26 2017

NoQ added a comment to D34508: [Analyzer] Bug Reporter Visitor to Display Values of Variables - PRELIMINARY!.

In a perfect world, the analyzer's report would work like a debugger: jumping through stack frames, or even through diagnostic pieces, and printing symbolic values of variables at every piece would be really great.

Jun 26 2017, 12:55 PM

Jun 24 2017

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

Now I can improve SValBuilder to compare {conj_X}+n to conj_X}+m, but I am not sure if it helps to simplify compare() much. How to handle cases where I have to compare {conj_X}+n to {conj_Y}+m, an we have a range [k..k] for {conj_X}-{conj_Y} in the constraint manager. I still need to decompose the two expressions, retrieve the single length range and adjust one of the sides of the comparison. I think I should not add such complicated code (i.e. retrieving single length range from the constrain manager) to SValBuilder.

Jun 24 2017, 11:37 PM
NoQ added a comment to D16403: Add scope information to CFG for If/While/For/Do/Compound/CXXRangeFor statements.

Maxim, totally thanks for picking this up!

Jun 24 2017, 11:17 PM · Restricted Project

Jun 23 2017

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

For example,

Jun 23 2017, 3:52 AM
NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I'm sure that simplification (($x + N) + M) ~> ($x + (M + N)) is already working in SValBuilder.

No, it is unfortunately not working: I tried to increase ${conj_X} by 1, then again by 1, and I got symbolic expression (${conj_X}+1)+1).

Jun 23 2017, 2:09 AM

Jun 22 2017

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I tried SValBuilder::evalBinOp() first but it did not help too much. It could decide only if I compared the same conjured symbols or different ones, but nothing more. It always gave me UnknownVal. Even if comparing ${conj_X} == ${conj_X} + n where n was a concrete integer. So I have to compare the symbol part and the concrete integer part separately.

In any case, it's not right to have two SValBuilders. Your code simplifies symbolic expressions of numeric types, SValBuilder does the same thing, there's no need to duplicate. It would be much better to move the functionality you need (and already have implemented) directly to SValBuilder.

Jun 22 2017, 8:12 AM
NoQ added a comment to D30691: [analyzer] Support for naive cross translational unit analysis.

Regarding serializing vs not serializing and now vs later.

Jun 22 2017, 7:30 AM
NoQ accepted D34502: [analyzer] Do not continue to analyze a path if the constraints contradict with builtin assume.

Hmm, yeah, right :)

Jun 22 2017, 3:00 AM

Jun 21 2017

NoQ added a comment to D34102: [analyzer] Add portability package for the checkers..

eg. checkers for portability across linux/bsd should be off on windows by default, checkers for non-portable C++ APIs should be off in plain C code, etc

Is the checker you are moving to portability off and not useful on Windows?

Jun 21 2017, 4:21 AM
NoQ added inline comments to D33729: [analyzer] lock_guard and unique_lock extension for BlockInCriticalSection Static Analyzer checker.
Jun 21 2017, 3:11 AM

Jun 20 2017

NoQ added a comment to D34277: [analyzer] Bump default performance thresholds?.

Gabor makes such a good point. Maybe we should commit the zombie symbols patch as well (:

Jun 20 2017, 12:34 AM
NoQ added a comment to D34266: Static Analyzer - Localizability Checker: New Localizable APIs for macOS High Sierra & iOS 11.

Hmm, should there be new tests that demonstrate that we cover the new APIs?

Jun 20 2017, 12:09 AM

Jun 19 2017

NoQ added a comment to D32642: [Analyzer] Iterator Checker - Part 2: Increment, decrement operators and ahead-of-begin checks.

I'm sorry, i'd try to get back to this and unblock your progress as soon as possible.

Jun 19 2017, 11:15 AM
NoQ accepted D31868: [analyzer] Check NULL pointer dereference issue for memset function.

Thanks, this was very useful, please commit!

Jun 19 2017, 11:08 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Yeah, right, i guess it's mostly about the CFG patch; i was just saying that if, in the end, we don't get scope contexts for all the scopes, this is probably fine - as long as we have *some* of them.

Jun 19 2017, 10:18 AM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Now to the eureka - am i the only one here who totally forgot about D16403/D19979?

We're working on bringing it back to life right now. But it takes time.

That's totally cool.

Jun 19 2017, 10:05 AM

Jun 17 2017

NoQ added a comment to D28953: [analyzer] Eliminate analyzer limitations on symbolic constraint generation.

Hmm, curious, having a look. A couple of blind guesses before i actually understand what's going on:

Jun 17 2017, 2:33 AM

Jun 16 2017

NoQ added a comment to D34277: [analyzer] Bump default performance thresholds?.

This was an mixture of internal apple projects (user apps, drivers, deamons, whatever) with a relatively balanced selection of languages and levels of analyzer adoption. They amounted to ~16 hours of analysis CPU time (i.e. 4 hours on a quad-core machine per run). I've also ran it on LLVM separately, and had similar observations. I'm totally welcoming the feedback from other codebases!

Jun 16 2017, 1:28 PM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

A historical retrospective for Peter: there have been quite a few people, at different moments of time, who wanted a checker callback for entering and exiting "scopes". For example, StackAddrEscapeChecker finds local variables that escape a function by reference, but doesn't find local variables that escape an if-branch or a loop body by reference. The proposed approach involved creating a ScopeContext, a counterpart of StackFrameContext that gets constructed and put on the stack of location contexts when a scope is entered and popped when the scope is exited, similarly to how StackFrameContext is put on the stack of location contexts to represent the function call. Because a lot of events occur at scope boundaries, that'd be a great addition. However, the patches i mentioned are not yet done because some corner-cases were not handled. Whether you should complete these patches, as part of your GSoC project - i do not know, it may be harder than it seems. But they'd certainly serve as a good source of inspiration.

Jun 16 2017, 1:16 PM
NoQ added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Uhm, it just striked me where this is going. So, generally, we're bound to track when we're entering the loop and exiting the loop. And we have troubles with that, because just by looking at the block we can't say in what loops we are.

Jun 16 2017, 12:41 PM
NoQ updated the diff for D34102: [analyzer] Add portability package for the checkers..

Whoops, forgot to actually attach the patch. Here.

Jun 16 2017, 8:23 AM
NoQ added a comment to D34102: [analyzer] Add portability package for the checkers..

Here's a version of the patch without .unix. I'd still hate it to re-add the subpackages if we decide to turn some portability checkers on and off depending on language/platform (eg. checkers for portability across linux/bsd should be off on windows by default, checkers for non-portable C++ APIs should be off in plain C code, etc.).

Jun 16 2017, 8:21 AM
NoQ created D34277: [analyzer] Bump default performance thresholds?.
Jun 16 2017, 6:47 AM

Jun 12 2017

NoQ added inline comments to D34102: [analyzer] Add portability package for the checkers..
Jun 12 2017, 9:13 AM